time="2025-03-14T16:24:34Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion" Container integration-test-device-1 Creating Container integration-test-authentication-1 Creating Container integration-test-gateway-1 Creating Container integration-test-experiment-1 Creating Container integration-test-authorization-1 Creating Container integration-test-federation-1 Creating Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Container integration-test-gateway-1 Created Container integration-test-device-1 Created Container integration-test-authentication-1 Created Container integration-test-authorization-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-1, gateway-1 gateway-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration gateway-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf gateway-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/lti_service.conf to /etc/nginx/lti_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/experiment_service.conf to /etc/nginx/experiment_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/auth_service.conf to /etc/nginx/auth_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/federation_service.conf to /etc/nginx/federation_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_json_errors.conf to /etc/nginx/api_json_errors.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_backends.conf to /etc/nginx/api_backends.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_gateway.conf to /etc/nginx/api_gateway.conf gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh gateway-1 | /docker-entrypoint.sh: Configuration complete; ready for start up federation-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} federation-1 | {"level":"info","message":"Federation Service started successfully"} device-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":"2025-03-14T16:25:26Z"} device-1 | {"level":"info","message":"Device Service started successfully"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"client_addr":"127.0.0.1:53720","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2025-03-14T16:25:27Z"} authorization-1 | {"client_addr":"127.0.0.1:53720","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.245726,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:27Z"} 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":1741969527.1058822} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1741969527.1071131} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1741969527.1071508} 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":1741969527.107185} 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":1741969527.1072152} 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":1741969527.107285,"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":1741969527.1079428} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1741969527.1090734} 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:53276","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2025-03-14T16:25:27.122949513Z","id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","name":"crosslab","updated_at":"2025-03-14T16:25:27.122949513Z"},"request_id":"ed26ea3d-a581-41de-9727-a87658bacf6f","subsystem":"openfga","timestamp":1741969527.1230628} 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:53276","raw_request":{"schema_version":"1.1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01JPAQK4D7WM0V5HNKBD90E0NG"},"request_id":"686e7eb5-b49a-4522-98a2-1ee18400dd40","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969527.2073324} authorization-1 | {"client_addr":"127.0.0.1:53720","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2025-03-14T16:25:27Z"} authorization-1 | {"client_addr":"127.0.0.1:53720","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.201262,"resp_status":204,"subsystem":"opa","time":"2025-03-14T16:25:27Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v1.2.0/opa_linux_amd64","latest_version":"1.2.0","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v1.2.0","subsystem":"opa","time":"2025-03-14T16:25:27Z"} gateway-1 | {"time_local":"14/Mar/2025:16:25:37 +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.031","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"2b3739f2f81d3307c269dd960d5e2f68"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 7ms","method":"HEAD","requestID":"2b3739f2f81d3307c269dd960d5e2f68","responseTime":7,"status":200,"url":"/auth/status"} device-1 | {"level":"info","message":"HEAD /device/status 200 7ms","method":"HEAD","requestID":"f6405e50-00f0-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"14/Mar/2025:16:25:37 +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.032","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"46b3352dbcd82f87e24c5acd4c718474"} gateway-1 | {"time_local":"14/Mar/2025:16:25:37 +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.006","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"d19b550c57a212a6713a8ea2a906e917"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 4ms","method":"HEAD","requestID":"d19b550c57a212a6713a8ea2a906e917","responseTime":4,"status":200,"url":"/authorization/status"} gateway-1 | {"time_local":"14/Mar/2025:16:25:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /federation/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.032","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"d8e639413283e4123034315d6a0c3842"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 28ms","method":"HEAD","requestID":"f6482680-00f0-11f0-9ced-47c7776c8220","responseTime":28,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"14/Mar/2025:16:25:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /experiment/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.012","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"06fe5b9c4fba53dbc43835f5241b2b62"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 8ms","method":"HEAD","requestID":"f64e19f0-00f0-11f0-9388-a37f376790ba","responseTime":8,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"14/Mar/2025:16:25:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.174","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4057308e1d17de6efc81e3e1f273e4cc"} authentication-1 | {"level":"info","message":"POST /login 201 161ms","method":"POST","requestID":"4057308e1d17de6efc81e3e1f273e4cc","responseTime":161,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0NH0.MnA16glh7QnlX9j7X9mPz7QowmjsuTYPWA_NpoHIlgc","level":"info","message":"auth send jwt","requestID":"741afc746043168f8217c2dc8e70a485"} authentication-1 | {"level":"info","message":"GET /auth 200 11ms","method":"GET","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":11,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"741afc746043168f8217c2dc8e70a485"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:44Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.808446,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"741afc746043168f8217c2dc8e70a485","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969544,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0NH0.MnA16glh7QnlX9j7X9mPz7QowmjsuTYPWA_NpoHIlgc"} authorization-1 | {"level":"info","message":"POST /authorize 200 43ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":43,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"68d623a9-464f-485f-840d-d185b31f3c3c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.3985786} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ad18257-ca1c-4a46-823a-6e08dac274c6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.410577} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":9,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"040474e6-ca14-4eb8-809e-e225fc71f537","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.428378} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad165944-27aa-4a0b-802d-db30b275befa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.4308505} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":22,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.427972723Z"}]},"request_id":"7f645d54-fab2-4e6b-acee-a22d11979f18","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.4375987} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"741afc746043168f8217c2dc8e70a485"} gateway-1 | {"time_local":"14/Mar/2025:16:25:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"741afc746043168f8217c2dc8e70a485"} device-1 | {"level":"info","message":"POST /devices? 201 213ms","method":"POST","requestID":"741afc746043168f8217c2dc8e70a485","responseTime":213,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0NH0.MnA16glh7QnlX9j7X9mPz7QowmjsuTYPWA_NpoHIlgc","level":"info","message":"auth send jwt","requestID":"dd37124944799d88ced56103edf7aeea"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"dd37124944799d88ced56103edf7aeea"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:44Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.033249,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dd37124944799d88ced56103edf7aeea","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969544,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0NH0.MnA16glh7QnlX9j7X9mPz7QowmjsuTYPWA_NpoHIlgc"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"57c5db09-aef0-41e7-858a-276ffbda4294","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.4971955} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f275c218-9049-4638-a8c6-fe70b6171fa2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.5307233} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":32,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3d79b432-84bd-4127-8653-cd8dbf177242","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.5438974} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e45b742-653f-40e1-b0ae-18ab664e7530","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.5441384} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.543882870Z"}]},"request_id":"c3392c26-2606-4ea6-87e4-13ead38244ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969544.5514853} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"dd37124944799d88ced56103edf7aeea"} gateway-1 | {"time_local":"14/Mar/2025:16:25:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.117","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd37124944799d88ced56103edf7aeea"} device-1 | {"level":"info","message":"POST /devices? 201 112ms","method":"POST","requestID":"dd37124944799d88ced56103edf7aeea","responseTime":112,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"462439bc321810d481bcbd32fee948ac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"462439bc321810d481bcbd32fee948ac","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3deb5d39b132e1dc086607f6f7ad9953","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3deb5d39b132e1dc086607f6f7ad9953","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:25:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/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":"462439bc321810d481bcbd32fee948ac"} device-1 | {"level":"info","message":"OPTIONS /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/websocket 200 1ms","method":"OPTIONS","requestID":"462439bc321810d481bcbd32fee948ac","responseTime":1,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:25:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2035026d-d104-430a-8f78-b8e2f386db7b/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":"3deb5d39b132e1dc086607f6f7ad9953"} device-1 | {"level":"info","message":"OPTIONS /devices/2035026d-d104-430a-8f78-b8e2f386db7b/websocket 200 0ms","method":"OPTIONS","requestID":"3deb5d39b132e1dc086607f6f7ad9953","responseTime":0,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0","level":"info","message":"auth send jwt","requestID":"f69e285d38610e1ed9baade8cb4a8e94"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f69e285d38610e1ed9baade8cb4a8e94","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f69e285d38610e1ed9baade8cb4a8e94"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0","level":"info","message":"auth send jwt","requestID":"a17fc24705235308f6b5fe22f6ac1a38"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a17fc24705235308f6b5fe22f6ac1a38","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a17fc24705235308f6b5fe22f6ac1a38"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:47Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.935973,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f69e285d38610e1ed9baade8cb4a8e94","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969547,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"f69e285d38610e1ed9baade8cb4a8e94","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:47Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.791347,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:47Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a17fc24705235308f6b5fe22f6ac1a38","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969547,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"a17fc24705235308f6b5fe22f6ac1a38","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a17fc24705235308f6b5fe22f6ac1a38"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/websocket 200 49ms","method":"POST","requestID":"a17fc24705235308f6b5fe22f6ac1a38","responseTime":49,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:25:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.060","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a17fc24705235308f6b5fe22f6ac1a38"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f69e285d38610e1ed9baade8cb4a8e94"} gateway-1 | {"time_local":"14/Mar/2025:16:25:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.179","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f69e285d38610e1ed9baade8cb4a8e94"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/websocket 200 172ms","method":"POST","requestID":"f69e285d38610e1ed9baade8cb4a8e94","responseTime":172,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0","level":"info","message":"auth send jwt","requestID":"3391a3e5611d6c9921a07daabd497210"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3391a3e5611d6c9921a07daabd497210","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3391a3e5611d6c9921a07daabd497210"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.777273,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3391a3e5611d6c9921a07daabd497210","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969547,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0N30.gEEZH7Kg6dm64i79ERqFlBUChVgzkfEzf1LAYg6_Jv0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3391a3e5611d6c9921a07daabd497210","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.427972723Z"}]},"request_id":"bd20270a-75d6-4cd3-bd96-a984bf352739","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.007791} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"3391a3e5611d6c9921a07daabd497210","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3391a3e5611d6c9921a07daabd497210"} gateway-1 | {"time_local":"14/Mar/2025:16:25:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3391a3e5611d6c9921a07daabd497210"} device-1 | {"level":"info","message":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? 200 48ms","method":"GET","requestID":"3391a3e5611d6c9921a07daabd497210","responseTime":48,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU","level":"info","message":"auth send jwt","requestID":"d210d21084a5298163eb38a88111a9a8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d210d21084a5298163eb38a88111a9a8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d210d21084a5298163eb38a88111a9a8"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.633084,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d210d21084a5298163eb38a88111a9a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d210d21084a5298163eb38a88111a9a8","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.543882870Z"}]},"request_id":"6ef3b5f4-e155-448b-a947-cefd34d0d093","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.0847836} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d210d21084a5298163eb38a88111a9a8","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d210d21084a5298163eb38a88111a9a8"} gateway-1 | {"time_local":"14/Mar/2025:16:25:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d210d21084a5298163eb38a88111a9a8"} device-1 | {"level":"info","message":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? 200 38ms","method":"GET","requestID":"d210d21084a5298163eb38a88111a9a8","responseTime":38,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU","level":"info","message":"auth send jwt","requestID":"a16936a0cd2d0611ae209cad2023b247"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a16936a0cd2d0611ae209cad2023b247","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a16936a0cd2d0611ae209cad2023b247"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.684768,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a16936a0cd2d0611ae209cad2023b247","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"a16936a0cd2d0611ae209cad2023b247","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to run experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to book experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully booked experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.122777,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.835237,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.427972723Z"}]},"request_id":"5f12d740-0e14-40c1-9490-bbb4c2545beb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.4113376} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.543882870Z"}]},"request_id":"72db1094-9f7a-4525-9cdb-da59e11495fc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.4126658} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? 200 26ms","method":"GET","requestID":"fcebfac0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? 200 26ms","method":"GET","requestID":"fcec48e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Setting up experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to update booking for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully updated booking for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully set up experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704394,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully running experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.906546,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd24e510-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":28.129716,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.543882870Z"}]},"request_id":"b3e74992-e4ea-4879-987f-37af7c294f39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.8061628} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a44f344-a1b4-447d-a93e-a4702d6a6a0d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.8065267} authorization-1 | {"level":"info","message":"POST /relations/query 200 30ms","method":"POST","requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/relations/query"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd24e510-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"fd24e510-00f0-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.427972723Z"}]},"request_id":"68d4b4b6-bf2a-4b06-8493-297c842c9e6b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.8086395} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? 200 50ms","method":"GET","requestID":"fd2496f0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":50,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd24e510-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling 200 52ms","method":"POST","requestID":"fd24e510-00f0-11f0-9a2b-c98a3cf1c544","responseTime":52,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? 200 58ms","method":"GET","requestID":"fd2448d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":58,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd311a10-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd318f40-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53e5bfa8-c29b-43eb-99f2-72862383342a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.854314} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.351864,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd311a10-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fd311a10-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"96b2bb73-8ea8-44ac-955e-6d850ca29008","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.8569171} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.457316,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd318f40-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd311a10-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"fd318f40-00f0-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling 200 11ms","method":"POST","requestID":"fd311a10-00f0-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd318f40-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling 200 11ms","method":"POST","requestID":"fd318f40-00f0-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd33b220-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"905d8fef-4c54-4363-be5c-34c33019de8f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.87028} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.332426,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd33b220-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fd33b220-00f0-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd33b220-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling 200 34ms","method":"POST","requestID":"fd33b220-00f0-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"76b5cbe8-715e-44f1-9344-e95157670242","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.9002771} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce5b1537-1dee-4b54-8d8b-a223582375f1#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce5b1537-1dee-4b54-8d8b-a223582375f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6a9eb872-c4d3-4d75-add4-f7006c840387","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.9007087} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Building connection plan","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"cee17ea7-5795-4a03-a8a1-8fe670fd9022"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"88a122e2-95b6-4bb4-985d-56cb31fd2c70"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0a283e9d-a58e-42fe-a7e1-c9da27f349ab"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a16936a0cd2d0611ae209cad2023b247"} authorization-1 | {"level":"info","message":"POST /relations/update 200 129ms","method":"POST","requestID":"a16936a0cd2d0611ae209cad2023b247","responseTime":129,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.897555,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a16936a0cd2d0611ae209cad2023b247"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:25:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.825","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a16936a0cd2d0611ae209cad2023b247"} experiment-1 | {"level":"info","message":"POST /experiments? 201 790ms","method":"POST","requestID":"a16936a0cd2d0611ae209cad2023b247","responseTime":790,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU","level":"info","message":"auth send jwt","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.720009,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dc1bda7dd214bf5ff2a310fbd613aad3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.427972723Z"}]},"request_id":"b361105a-4f7a-4375-9947-0b04c83092de","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969548.9611726} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3"} gateway-1 | {"time_local":"14/Mar/2025:16:25:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3"} device-1 | {"level":"info","message":"GET /devices/2035026d-d104-430a-8f78-b8e2f386db7b? 200 13ms","method":"GET","requestID":"dc1bda7dd214bf5ff2a310fbd613aad3","responseTime":13,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU","level":"info","message":"auth send jwt","requestID":"915646b7d8e6e607baeee31f2963a0d8"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"915646b7d8e6e607baeee31f2963a0d8","responseTime":29,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"915646b7d8e6e607baeee31f2963a0d8"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689566,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"915646b7d8e6e607baeee31f2963a0d8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969548,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OH0.IWSrJpD8OJ-UXRk3yce8Z4Ocvdf1un5hFE9bCTtvMsU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"915646b7d8e6e607baeee31f2963a0d8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:44.543882870Z"}]},"request_id":"e4e0ad2a-2c9b-4632-a3f5-1f8b158c6557","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.006208} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"915646b7d8e6e607baeee31f2963a0d8","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"915646b7d8e6e607baeee31f2963a0d8"} gateway-1 | {"time_local":"14/Mar/2025:16:25:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"915646b7d8e6e607baeee31f2963a0d8"} device-1 | {"level":"info","message":"GET /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34? 200 14ms","method":"GET","requestID":"915646b7d8e6e607baeee31f2963a0d8","responseTime":14,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"495ce8ec-40e4-4f2c-943c-ff8e3f42bbc4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.0438657} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c9c5a9b-319b-4a7e-b0fd-678e5cd3eee8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.0442407} authorization-1 | {"level":"info","message":"POST /relations/update 200 99ms","method":"POST","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":99,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe'","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe'","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 320ms","method":"POST","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":320,"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","requestID":"fd3a41d0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a16936a0cd2d0611ae209cad2023b247"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd75c430-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"933c6007-0a08-4e54-80a6-91a874bd35e9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.3289776} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.932895,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd75c430-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"fd75c430-00f0-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd75c430-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling 200 39ms","method":"POST","requestID":"fd75c430-00f0-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fd7c53e0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c5449e47-5407-459a-8d03-1e692e41ffb2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.3472757} device-1 | {"content":{"sdp":"v=0\r\no=- 2513279082841294341 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:1ThI\r\na=ice-pwd:4BqrAxJ0lPudA4eTW7/uY91s\r\na=ice-options:trickle\r\na=fingerprint:sha-256 11:9E:63:DB:3B:32:DC:66:F5:B7:27:76:DE:5B:F7:66:79:7A:1F:FA:98:3F:F6:06:17:90:3B:D1:41:7C:38:81\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.06183,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd7c53e0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fd7c53e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fd7c53e0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling 200 10ms","method":"POST","requestID":"fd7c53e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 3861975597302309791 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:s1yM\r\na=ice-pwd:QVRtKGPWn4GWKkM2ggJLg6Te\r\na=ice-options:trickle\r\na=fingerprint:sha-256 93:DC:75:16:CB:B3:24:E2:D6:16:0B:EC:7A:F0:3C:CD:EC:55:92:50:39:BE:54:6A:87:B0:39:6C:A5:2E:50:36\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3669912072 1 udp 2113937151 ab0990b4-137f-4ed4-a766-5c29f9faa27e.local 47516 typ host generation 0 ufrag s1yM network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34'"} device-1 | {"content":{"candidate":"candidate:3203204974 1 udp 2113937151 5d0380ca-1100-435c-a6ba-ab2feae1a96e.local 35714 typ host generation 0 ufrag 1ThI network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"dcc72b14892dd55db7eea307b48787ea","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dcc72b14892dd55db7eea307b48787ea","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"}}},"level":"info","message":"received a callback","requestID":"dcc72b14892dd55db7eea307b48787ea"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"dcc72b14892dd55db7eea307b48787ea","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"dcc72b14892dd55db7eea307b48787ea"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"88a3ea2359708f9c74c69c86097be632","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"88a3ea2359708f9c74c69c86097be632","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/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"}}},"level":"info","message":"received a callback","requestID":"88a3ea2359708f9c74c69c86097be632"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM","level":"info","message":"auth send jwt","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"fd984050-00f0-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a96540-5483-4f88-82d7-0ab029852bfe","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5a24203b-8c74-4481-acfa-b5abff98da7c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.530697} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.420107,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd984050-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","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","method":"POST","requestID":"fd984050-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.150779,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"573a7e105e36c77cb98a09f8ab1d2bfe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969549,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"fd984050-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe 200 12ms","method":"GET","requestID":"fd984050-00f0-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe"} gateway-1 | {"time_local":"14/Mar/2025:16:25:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 HTTP/1.1","status": "200","body_bytes_sent":"878","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe"} experiment-1 | {"level":"info","message":"GET /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 200 51ms","method":"GET","requestID":"573a7e105e36c77cb98a09f8ab1d2bfe","responseTime":51,"status":200,"url":"/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"88a3ea2359708f9c74c69c86097be632","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"88a3ea2359708f9c74c69c86097be632"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fda75b80-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06eb79ba-cec9-4ff8-baff-5426a3ad7de9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.6299536} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.871223,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fda75b80-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fda75b80-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fda75b80-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling 200 10ms","method":"POST","requestID":"fda75b80-00f0-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fda95750-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5a06f7d7-1600-4443-a101-2b5f318e1acb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.66551} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.399345,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fda95750-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"fda95750-00f0-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fda95750-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling 200 33ms","method":"POST","requestID":"fda95750-00f0-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM","level":"info","message":"auth send jwt","requestID":"618f81c5898a07b772fd3faddda7fd18"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"618f81c5898a07b772fd3faddda7fd18","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"618f81c5898a07b772fd3faddda7fd18"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.699899,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"618f81c5898a07b772fd3faddda7fd18","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969549,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"618f81c5898a07b772fd3faddda7fd18","responseTime":28,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"618f81c5898a07b772fd3faddda7fd18"} gateway-1 | {"time_local":"14/Mar/2025:16:25:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"618f81c5898a07b772fd3faddda7fd18"} experiment-1 | {"level":"info","message":"GET /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 200 35ms","method":"GET","requestID":"618f81c5898a07b772fd3faddda7fd18","responseTime":35,"status":200,"url":"/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM","level":"info","message":"auth send jwt","requestID":"a48822f1f7b6d34722e9836bffd369ba"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a48822f1f7b6d34722e9836bffd369ba","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"a48822f1f7b6d34722e9836bffd369ba"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.7236,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a48822f1f7b6d34722e9836bffd369ba","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969549,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a48822f1f7b6d34722e9836bffd369ba","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Attempting to finish experiment","requestID":"a48822f1f7b6d34722e9836bffd369ba"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.789487,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969549,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU0OX0.EXTi-8wwS4YW1eSc6GW1rXkabu3Oa4F-gP78aahfCGM"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":23,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","device":"0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe","device":"2035026d-d104-430a-8f78-b8e2f386db7b","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"14e9cb752d062592c09faab9d41862d6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"14e9cb752d062592c09faab9d41862d6","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d3effa0659642dfb6b954b768635f407","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"}}},"level":"info","message":"received a callback","requestID":"14e9cb752d062592c09faab9d41862d6"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d3effa0659642dfb6b954b768635f407","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"}}},"level":"info","message":"received a callback","requestID":"d3effa0659642dfb6b954b768635f407"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a96540-5483-4f88-82d7-0ab029852bfe': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F09a96540-5483-4f88-82d7-0ab029852bfe","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"6bc33647-b1c9-4081-b02f-7464fefb3405","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.7829936} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf9ba2b4-aef2-4320-991f-f4fc5884b397","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.7835753} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"09a96540-5483-4f88-82d7-0ab029852bfe","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe 204 90ms","method":"DELETE","requestID":"fdb8c0a0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":90,"status":204,"url":"/peerconnections/09a96540-5483-4f88-82d7-0ab029852bfe"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"},"level":"info","message":"Successfully finished experiment","requestID":"a48822f1f7b6d34722e9836bffd369ba"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fdcce4e0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77f989c2-48ee-4255-b5ad-c83303fc9615","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.8772624} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.39814,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fdcce4e0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fdcce4e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fdcce4e0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling 200 12ms","method":"POST","requestID":"fdcce4e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"fdcf07c0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2035026d-d104-430a-8f78-b8e2f386db7b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a26b74cf-4a22-429f-bad6-809286a19d6c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.9090729} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.688645,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fdcf07c0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"fdcf07c0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"fdcf07c0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling 200 30ms","method":"POST","requestID":"fdcf07c0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/devices/2035026d-d104-430a-8f78-b8e2f386db7b/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce5b1537-1dee-4b54-8d8b-a223582375f1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fce5b1537-1dee-4b54-8d8b-a223582375f1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"201b1db2-3b84-4dfa-901b-b78727d23bbc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.9157543} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"28811933-31d8-4910-bb90-6cd5d421ca9e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969549.916062} authorization-1 | {"level":"info","message":"POST /relations/update 200 51ms","method":"POST","requestID":"a48822f1f7b6d34722e9836bffd369ba","responseTime":51,"status":200,"url":"/relations/update"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1","requestID":"a48822f1f7b6d34722e9836bffd369ba"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.291","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a48822f1f7b6d34722e9836bffd369ba"} experiment-1 | {"level":"info","message":"DELETE /experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1 204 290ms","method":"DELETE","requestID":"a48822f1f7b6d34722e9836bffd369ba","responseTime":290,"status":204,"url":"/experiments/ce5b1537-1dee-4b54-8d8b-a223582375f1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 242ms","method":"POST","requestID":"14e9cb752d062592c09faab9d41862d6","responseTime":242,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch","requestID":"14e9cb752d062592c09faab9d41862d6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MH0.ssDQAoNtserFENaYHsnkGrYgm8VP3E14Ujac1UIdzJY","level":"info","message":"auth send jwt","requestID":"bd1d276c51fc8d9c9da583267bf7f046"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 242ms","method":"POST","requestID":"d3effa0659642dfb6b954b768635f407","responseTime":242,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch","requestID":"d3effa0659642dfb6b954b768635f407"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"bd1d276c51fc8d9c9da583267bf7f046"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"2.250","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2e5c746158e9c89cbf891927ed09e7e1"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"2.331","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e836acd1bd5e605c120ea1e88ebf6ba0"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:50Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.861711,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bd1d276c51fc8d9c9da583267bf7f046","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969550,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MH0.ssDQAoNtserFENaYHsnkGrYgm8VP3E14Ujac1UIdzJY"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0caafae7-f3b3-4c1d-8974-98e8c8cb0b34' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2035026d-d104-430a-8f78-b8e2f386db7b' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"389217fc-bcd9-4b57-9185-e25442c5e2de","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.069436} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c5a8f725-8a43-42e0-9cf0-6c314b848091","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.0982578} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3cf01d2a-8773-452b-a7da-2374b1caa9a5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.1092746} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0358cde5-a250-4914-8cd5-3c88d522b774","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.1093807} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.109260532Z"}]},"request_id":"8bb33112-9c96-4772-bda5-2230eb7fe89a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.1145642} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"bd1d276c51fc8d9c9da583267bf7f046"} device-1 | {"level":"info","message":"POST /devices? 201 94ms","method":"POST","requestID":"bd1d276c51fc8d9c9da583267bf7f046","responseTime":94,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd1d276c51fc8d9c9da583267bf7f046"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MH0.ssDQAoNtserFENaYHsnkGrYgm8VP3E14Ujac1UIdzJY","level":"info","message":"auth send jwt","requestID":"1df9d4b57a636981f80b4c18a32d09ff"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"1df9d4b57a636981f80b4c18a32d09ff"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:50Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.668625,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1df9d4b57a636981f80b4c18a32d09ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969550,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MH0.ssDQAoNtserFENaYHsnkGrYgm8VP3E14Ujac1UIdzJY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7c5145ae-bbeb-4ed8-b0fb-7873e5f4ffbe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.1641624} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f07d6d98-b1a7-4700-991f-3cc6e4859aa1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.1683478} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6375231a-b448-478a-9b1d-a10fbb4cc43c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.2071815} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2681999b-8d2a-469e-abc6-549ad4577c89","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.2074134} authorization-1 | {"level":"info","message":"POST /relations/update 200 42ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":42,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"5eb63a73-5a4f-4856-b37e-9f68c0caf6d8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969550.2126951} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1df9d4b57a636981f80b4c18a32d09ff"} gateway-1 | {"time_local":"14/Mar/2025:16:25:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1df9d4b57a636981f80b4c18a32d09ff"} device-1 | {"level":"info","message":"POST /devices? 201 69ms","method":"POST","requestID":"1df9d4b57a636981f80b4c18a32d09ff","responseTime":69,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MX0.F2KEfcLcGyTKIXIDqTcG9X-GoURZgXxDkB9k8DDpfZE","level":"info","message":"auth send jwt","requestID":"cd5ab651f0024ca3e4a168715f86a2cb"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"cd5ab651f0024ca3e4a168715f86a2cb"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:51Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.150824,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cd5ab651f0024ca3e4a168715f86a2cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969551,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MX0.F2KEfcLcGyTKIXIDqTcG9X-GoURZgXxDkB9k8DDpfZE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"d1ea0526-da41-4d6b-9b51-384611c8cf58","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969551.058638} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"137708a6-29d9-47c6-883e-eb9ea98e836d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969551.0635803} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"9827e14d-ba8b-452d-a975-7183ad445133","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969551.0769842} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"cd5ab651f0024ca3e4a168715f86a2cb"} device-1 | {"level":"info","message":"PATCH /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2 200 64ms","method":"PATCH","requestID":"cd5ab651f0024ca3e4a168715f86a2cb","responseTime":64,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"} gateway-1 | {"time_local":"14/Mar/2025:16:25:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.068","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"cd5ab651f0024ca3e4a168715f86a2cb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MX0.F2KEfcLcGyTKIXIDqTcG9X-GoURZgXxDkB9k8DDpfZE","level":"info","message":"auth send jwt","requestID":"1b822f204178a63244e2b018b7dbf10d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1b822f204178a63244e2b018b7dbf10d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"1b822f204178a63244e2b018b7dbf10d"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:51Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.724713,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b822f204178a63244e2b018b7dbf10d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969551,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1MX0.F2KEfcLcGyTKIXIDqTcG9X-GoURZgXxDkB9k8DDpfZE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1b822f204178a63244e2b018b7dbf10d","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"1b822f204178a63244e2b018b7dbf10d"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/websocket 200 14ms","method":"POST","requestID":"1b822f204178a63244e2b018b7dbf10d","responseTime":14,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:25:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.018","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"1b822f204178a63244e2b018b7dbf10d"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"51a27196970ca9421c3f1d194851acbd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"51a27196970ca9421c3f1d194851acbd","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/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":"51a27196970ca9421c3f1d194851acbd"} device-1 | {"level":"info","message":"OPTIONS /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/websocket 200 1ms","method":"OPTIONS","requestID":"51a27196970ca9421c3f1d194851acbd","responseTime":1,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"2cd9004e10e1adacc5ce868edb155e54"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2cd9004e10e1adacc5ce868edb155e54","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2cd9004e10e1adacc5ce868edb155e54"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.892413,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cd9004e10e1adacc5ce868edb155e54","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"2cd9004e10e1adacc5ce868edb155e54","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2cd9004e10e1adacc5ce868edb155e54"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.051","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2cd9004e10e1adacc5ce868edb155e54"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/websocket 200 46ms","method":"POST","requestID":"2cd9004e10e1adacc5ce868edb155e54","responseTime":46,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.656948,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3af10ca471492f6c9b2130fbcdfd7d0f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.109260532Z"}]},"request_id":"ef3e6bb7-7be0-4a91-86f3-750b82f8ebd4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.4934034} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f"} device-1 | {"level":"info","message":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? 200 15ms","method":"GET","requestID":"3af10ca471492f6c9b2130fbcdfd7d0f","responseTime":15,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"c0c1844d6b8c66e82469407590d74cbc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c0c1844d6b8c66e82469407590d74cbc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c0c1844d6b8c66e82469407590d74cbc"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.764954,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c0c1844d6b8c66e82469407590d74cbc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c0c1844d6b8c66e82469407590d74cbc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"08980e4a-6fc9-4171-8aa4-101c4a8be86b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.5138714} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"c0c1844d6b8c66e82469407590d74cbc","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c0c1844d6b8c66e82469407590d74cbc"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0c1844d6b8c66e82469407590d74cbc"} device-1 | {"level":"info","message":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? 200 15ms","method":"GET","requestID":"c0c1844d6b8c66e82469407590d74cbc","responseTime":15,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7aff73362aeaf48e45c3cd52f71ae11f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.757488,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"7aff73362aeaf48e45c3cd52f71ae11f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"7aff73362aeaf48e45c3cd52f71ae11f","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to run experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to book experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully booked experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.106486,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.274239,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.109260532Z"}]},"request_id":"b8e96884-d870-4c34-a7bc-05d300bbac35","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.746419} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"fe68a98a-9b74-4c99-b27e-188d9ebf3b3e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.748723} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? 200 27ms","method":"GET","requestID":"ff814ba0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? 200 27ms","method":"GET","requestID":"ff8199c0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Setting up experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully locked booking for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to update booking for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully updated booking for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully set up experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ff923b90-00f0-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully running experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52574","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695996,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.603592,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"25baae62-1c51-4ea8-be23-dda6189220fc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8525186} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.109260532Z"}]},"request_id":"ed3f8601-640b-4a93-8939-68b4025a30aa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8541255} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4f37eb3-cf98-4071-a821-3ed9cf08face","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8559892} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.672504,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff923b90-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? 200 44ms","method":"GET","requestID":"ff921480-00f0-11f0-9a2b-c98a3cf1c544","responseTime":44,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2?"} authorization-1 | {"level":"info","message":"POST /authorize 200 39ms","method":"POST","requestID":"ff923b90-00f0-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb70cd255-af10-4681-b128-2cf750dc362d#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb70cd255-af10-4681-b128-2cf750dc362d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"b90e69bf-d5ab-4e73-a2df-59cd00bd2f8e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8830976} device-1 | {"level":"info","message":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? 200 46ms","method":"GET","requestID":"ff91ed70-00f0-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"49fdec58-0a73-4a35-8217-fe0d85b53410","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8834217} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ff923b90-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"7aff73362aeaf48e45c3cd52f71ae11f","responseTime":39,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling 200 46ms","method":"POST","requestID":"ff923b90-00f0-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ff99b5a0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ff9a51e0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"611d9d42-5b1f-4e66-bf8c-61189a4b243e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.8951468} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.736265,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff99b5a0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"ff99b5a0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e819de58-20da-401f-b816-ef56dd335e51","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.900056} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.379","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 375ms","method":"POST","requestID":"7aff73362aeaf48e45c3cd52f71ae11f","responseTime":375,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.48208,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ff99b5a0-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff9a51e0-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling 200 14ms","method":"POST","requestID":"ff99b5a0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"ff9a51e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"7b701be39e036ae0e3485f57c0a5c282"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"7b701be39e036ae0e3485f57c0a5c282","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ff9ff730-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ff9a51e0-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling 200 39ms","method":"POST","requestID":"ff9a51e0-00f0-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"7b701be39e036ae0e3485f57c0a5c282"} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"edf01187-b523-4c9a-a509-32617829a095","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.9379122} authorization-1 | {"client_addr":"127.0.0.1:52596","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.886035,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"7b701be39e036ae0e3485f57c0a5c282","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7b701be39e036ae0e3485f57c0a5c282","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.131256,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff9ff730-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"ff9ff730-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7b701be39e036ae0e3485f57c0a5c282"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ff9ff730-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling 200 14ms","method":"POST","requestID":"ff9ff730-00f0-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"7b701be39e036ae0e3485f57c0a5c282"} device-1 | {"level":"info","message":"GET /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba? 200 14ms","method":"GET","requestID":"7b701be39e036ae0e3485f57c0a5c282","responseTime":14,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba?"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.109260532Z"}]},"request_id":"f525fad1-0041-4bed-bb3d-7655b2451f5b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.944052} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Building connection plan","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7b701be39e036ae0e3485f57c0a5c282","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"312e3f94-fb80-472c-ab5c-644be7649026"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"9d5aa02e-175c-4330-9b55-1405f8fb81c8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9762bb5f-9cb2-4afe-8235-f489c440e067"}]},"level":"info","message":"Built pairwise service configurations","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto","level":"info","message":"auth send jwt","requestID":"a03025e5f589552ad173e57fc35af8ae"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"a03025e5f589552ad173e57fc35af8ae","responseTime":28,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a03025e5f589552ad173e57fc35af8ae"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.66832,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674858,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a03025e5f589552ad173e57fc35af8ae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969552,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Mn0.0_QhevK87So00rmJbOEqMQ4coWbYkJvhVGZw2QqSxto"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a03025e5f589552ad173e57fc35af8ae","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:50.207171559Z"}]},"request_id":"1a0aa166-98db-4c44-b930-751775026cb9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.986234} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"37d7646a-ac1c-4434-b7d5-ff6682026a95","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.9877028} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"a03025e5f589552ad173e57fc35af8ae","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4d28fa9-3a77-49e8-9986-b756a9686502","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969552.9908104} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a03025e5f589552ad173e57fc35af8ae"} gateway-1 | {"time_local":"14/Mar/2025:16:25:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a03025e5f589552ad173e57fc35af8ae"} device-1 | {"level":"info","message":"GET /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2? 200 14ms","method":"GET","requestID":"a03025e5f589552ad173e57fc35af8ae","responseTime":14,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60'","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60'","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 74ms","method":"POST","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544","responseTime":74,"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","requestID":"ffa30470-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"7aff73362aeaf48e45c3cd52f71ae11f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ffb6b380-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:53Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34515fdb-b471-434b-af90-1dbe9a487e12","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969553.0844705} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.164881,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ffb6b380-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"ffb6b380-00f0-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ffb6b380-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling 200 8ms","method":"POST","requestID":"ffb6b380-00f0-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"ffb86130-00f0-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:53Z"} device-1 | {"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9a5e3653-7e06-4166-93a1-fd2fe56af190","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969553.0956037} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.66217,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ffb86130-00f0-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"ffb86130-00f0-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"ffb86130-00f0-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling 200 32ms","method":"POST","requestID":"ffb86130-00f0-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling"} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 5758654460306117213 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:G4Jh\r\na=ice-pwd:RB3NdUEV9sn6I9Ad1gb7829g\r\na=ice-options:trickle\r\na=fingerprint:sha-256 5B:22:0E:18:3A:CC:46:DC:1E:66:73:7C:C5:91:00:B6:92:91:F4:DE:7A:03:C6:EA:F2:06:D9:C9:D8:43:4C:5F\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:302853378 1 udp 2113937151 d01fd378-7ae5-4840-8783-e3b3d1b16686.local 49840 typ host generation 0 ufrag G4Jh network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"27352e0c4ee9a82600a120d8ec3a1b51","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"27352e0c4ee9a82600a120d8ec3a1b51","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/b5143629-69b5-43c7-b93d-062aaa3f75ba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"}}},"level":"info","message":"received a callback","requestID":"27352e0c4ee9a82600a120d8ec3a1b51"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"27352e0c4ee9a82600a120d8ec3a1b51","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"27352e0c4ee9a82600a120d8ec3a1b51"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"58ece1cfd0ba9b50938cdaa4141344c4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"58ece1cfd0ba9b50938cdaa4141344c4","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/b5143629-69b5-43c7-b93d-062aaa3f75ba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"}}},"level":"info","message":"received a callback","requestID":"58ece1cfd0ba9b50938cdaa4141344c4"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"00eee560-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F182b9b32-037a-448f-b9d5-d985e315bb60","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0190226c-955a-44f5-ac85-3992b1fdb941","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.130628} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.185872,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"00eee560-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","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","method":"POST","requestID":"00eee560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"00eee560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60 200 8ms","method":"GET","requestID":"00eee560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"58ece1cfd0ba9b50938cdaa4141344c4","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"58ece1cfd0ba9b50938cdaa4141344c4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"00f28ee0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"703e6c7b-838b-4501-84f9-fd6ae49458c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.1543694} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.205274,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"00f28ee0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"00f28ee0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"00f28ee0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling 200 8ms","method":"POST","requestID":"00f28ee0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"00f41580-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c89c856a-76ed-4162-9c25-e05abdf68e36","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.1889648} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.518189,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"00f41580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"00f41580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"00f41580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling 200 33ms","method":"POST","requestID":"00f41580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U","level":"info","message":"auth send jwt","requestID":"02e40dad0808e974cae5194e07d2ca0c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"02e40dad0808e974cae5194e07d2ca0c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b70cd255-af10-4681-b128-2cf750dc362d","requestID":"02e40dad0808e974cae5194e07d2ca0c"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.794312,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02e40dad0808e974cae5194e07d2ca0c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969555,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"02e40dad0808e974cae5194e07d2ca0c","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b70cd255-af10-4681-b128-2cf750dc362d","requestID":"02e40dad0808e974cae5194e07d2ca0c"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b70cd255-af10-4681-b128-2cf750dc362d HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"02e40dad0808e974cae5194e07d2ca0c"} experiment-1 | {"level":"info","message":"GET /experiments/b70cd255-af10-4681-b128-2cf750dc362d 200 33ms","method":"GET","requestID":"02e40dad0808e974cae5194e07d2ca0c","responseTime":33,"status":200,"url":"/experiments/b70cd255-af10-4681-b128-2cf750dc362d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U","level":"info","message":"auth send jwt","requestID":"ef887ad1df683e4ceb01a3959839a8df"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ef887ad1df683e4ceb01a3959839a8df","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b70cd255-af10-4681-b128-2cf750dc362d","requestID":"ef887ad1df683e4ceb01a3959839a8df"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.800787,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ef887ad1df683e4ceb01a3959839a8df","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969555,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ef887ad1df683e4ceb01a3959839a8df","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Attempting to finish experiment","requestID":"ef887ad1df683e4ceb01a3959839a8df"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.678107,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969555,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60","device":"b5143629-69b5-43c7-b93d-062aaa3f75ba","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6d5787c9-60f3-4bc2-8853-6b86f7d034d2","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F182b9b32-037a-448f-b9d5-d985e315bb60': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F182b9b32-037a-448f-b9d5-d985e315bb60","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"e0066a48-da45-413e-83fd-42a2de55ccd2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.2944717} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e18eac99f4bca18edc214535eae5c179","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0db1bc45-0f4b-42c3-bfd9-0f4435b5bfeb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.2948487} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e18eac99f4bca18edc214535eae5c179","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d64d494a24576a9b030a01947f3d8d75","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"}}},"level":"info","message":"received a callback","requestID":"e18eac99f4bca18edc214535eae5c179"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d64d494a24576a9b030a01947f3d8d75","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"}}},"level":"info","message":"received a callback","requestID":"d64d494a24576a9b030a01947f3d8d75"} device-1 | {"data":{"peerconnection":"182b9b32-037a-448f-b9d5-d985e315bb60","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60 204 85ms","method":"DELETE","requestID":"01029470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":85,"status":204,"url":"/peerconnections/182b9b32-037a-448f-b9d5-d985e315bb60"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b70cd255-af10-4681-b128-2cf750dc362d"},"level":"info","message":"Successfully finished experiment","requestID":"ef887ad1df683e4ceb01a3959839a8df"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0111d6b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb5143629-69b5-43c7-b93d-062aaa3f75ba","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3f3a527a-c229-4d72-8d43-2789d7866795","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.3805585} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.888055,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0111d6b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0111d6b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0111d6b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling 200 30ms","method":"POST","requestID":"0111d6b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0116b8b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb70cd255-af10-4681-b128-2cf750dc362d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb70cd255-af10-4681-b128-2cf750dc362d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"7db6c27c-8070-4e47-8ca1-1273f075c7da","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.3885484} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ae3aa768-7f0b-4708-b807-cc59797351b4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.389245} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"ef887ad1df683e4ceb01a3959839a8df","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6d5787c9-60f3-4bc2-8853-6b86f7d034d2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a8c4680-2c1a-4368-981c-a2674604d88b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.3926418} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.402373,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0116b8b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0116b8b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0116b8b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling 200 10ms","method":"POST","requestID":"0116b8b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b70cd255-af10-4681-b128-2cf750dc362d","requestID":"ef887ad1df683e4ceb01a3959839a8df"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b70cd255-af10-4681-b128-2cf750dc362d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.246","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ef887ad1df683e4ceb01a3959839a8df"} experiment-1 | {"level":"info","message":"DELETE /experiments/b70cd255-af10-4681-b128-2cf750dc362d 204 243ms","method":"DELETE","requestID":"ef887ad1df683e4ceb01a3959839a8df","responseTime":243,"status":204,"url":"/experiments/b70cd255-af10-4681-b128-2cf750dc362d"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2289","request_time":"4.364","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"648d353e8b573c6441ca47fcf7613bfb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 193ms","method":"POST","requestID":"e18eac99f4bca18edc214535eae5c179","responseTime":193,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"e18eac99f4bca18edc214535eae5c179"} gateway-1 | {"time_local":"14/Mar/2025:16:25: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.198","http_referrer":"","http_user_agent":"node-fetch","requestID":"d64d494a24576a9b030a01947f3d8d75"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U","level":"info","message":"auth send jwt","requestID":"0c3ae2518c63591680151ce217608d05"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 194ms","method":"POST","requestID":"d64d494a24576a9b030a01947f3d8d75","responseTime":194,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"0c3ae2518c63591680151ce217608d05"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2162","request_time":"3.040","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"26630f328afbd26afe924494076356cd"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6d5787c9-60f3-4bc2-8853-6b86f7d034d2' closed"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.831189,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c3ae2518c63591680151ce217608d05","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969555,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b5143629-69b5-43c7-b93d-062aaa3f75ba' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"80616661-684a-4574-8ee5-0b82c123a9e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.523261} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"af1de9e0-812e-4b4b-b55a-d5d228750544","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5292594} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3ebcef7b-b1c6-4582-ad4a-8245f00504cb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5392308} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dbb31ab3-cdbd-4fad-89a1-70752b84f183","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.539479} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"27ae78b3-b0f2-4bae-be55-779f2b18284b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.544409} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0c3ae2518c63591680151ce217608d05"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c3ae2518c63591680151ce217608d05"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"0c3ae2518c63591680151ce217608d05","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U","level":"info","message":"auth send jwt","requestID":"f80d207aa8b377d134c325b937c579d3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f80d207aa8b377d134c325b937c579d3"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.753987,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f80d207aa8b377d134c325b937c579d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969555,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1NX0.ILHUe1l1UG1Mm1VKMGQfXbF_47oeHc7l0tTOnR4ZW6U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4f01dc45-0523-4885-999a-9b0e97d388ce","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5685575} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0682d9b1-2a46-468e-b349-62235cda7315","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5740252} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"0425dfb5-8b28-4716-9c00-68f4aa18fc47","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5873945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1f64ae2-6873-4fa3-8070-02ee145f2bcc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5876126} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":17,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.587379582Z"}]},"request_id":"c450556a-5a74-400e-96ec-075aa1577d66","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969555.5929441} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f80d207aa8b377d134c325b937c579d3"} gateway-1 | {"time_local":"14/Mar/2025:16:25:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f80d207aa8b377d134c325b937c579d3"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"f80d207aa8b377d134c325b937c579d3","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Nn0.vkfaNN9zkCNSL2pqo4AJIPSLQU8J3hFgo8dxvRAbThg","level":"info","message":"auth send jwt","requestID":"b885ba46f9aa637db05bb9e1f4d00029"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"b885ba46f9aa637db05bb9e1f4d00029"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.69163,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b885ba46f9aa637db05bb9e1f4d00029","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969556,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Nn0.vkfaNN9zkCNSL2pqo4AJIPSLQU8J3hFgo8dxvRAbThg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"40c8c647-034b-4d45-8593-e8477edfb455","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969556.4836273} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd6698f5-4723-40ff-a95f-1ab6485f06dc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969556.4883332} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"7b124f04-40bf-476d-a33d-0407803f86fa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969556.531153} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"b885ba46f9aa637db05bb9e1f4d00029"} gateway-1 | {"time_local":"14/Mar/2025:16:25:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.084","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"b885ba46f9aa637db05bb9e1f4d00029"} device-1 | {"level":"info","message":"PATCH /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea 200 79ms","method":"PATCH","requestID":"b885ba46f9aa637db05bb9e1f4d00029","responseTime":79,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Nn0.vkfaNN9zkCNSL2pqo4AJIPSLQU8J3hFgo8dxvRAbThg","level":"info","message":"auth send jwt","requestID":"d766e1989df780132f5838d823dc43f5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d766e1989df780132f5838d823dc43f5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d766e1989df780132f5838d823dc43f5"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:56Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695181,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d766e1989df780132f5838d823dc43f5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969556,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1Nn0.vkfaNN9zkCNSL2pqo4AJIPSLQU8J3hFgo8dxvRAbThg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d766e1989df780132f5838d823dc43f5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d766e1989df780132f5838d823dc43f5"} gateway-1 | {"time_local":"14/Mar/2025:16:25:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"d766e1989df780132f5838d823dc43f5"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/websocket 200 14ms","method":"POST","requestID":"d766e1989df780132f5838d823dc43f5","responseTime":14,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b3b90bf10f5c0ea551a532841f958b8f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"b3b90bf10f5c0ea551a532841f958b8f","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:25:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/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":"b3b90bf10f5c0ea551a532841f958b8f"} device-1 | {"level":"info","message":"OPTIONS /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/websocket 200 1ms","method":"OPTIONS","requestID":"b3b90bf10f5c0ea551a532841f958b8f","responseTime":1,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1N30.YSSIi0H7JLEFdO5flMLzOnr0v1hau8v1_AoYo8nFX68","level":"info","message":"auth send jwt","requestID":"d2976dc1550ad85229f12777f96c0a32"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d2976dc1550ad85229f12777f96c0a32","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d2976dc1550ad85229f12777f96c0a32"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:57Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.305085,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d2976dc1550ad85229f12777f96c0a32","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969557,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1N30.YSSIi0H7JLEFdO5flMLzOnr0v1hau8v1_AoYo8nFX68"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"d2976dc1550ad85229f12777f96c0a32","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d2976dc1550ad85229f12777f96c0a32"} gateway-1 | {"time_local":"14/Mar/2025:16:25:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d2976dc1550ad85229f12777f96c0a32"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/websocket 200 39ms","method":"POST","requestID":"d2976dc1550ad85229f12777f96c0a32","responseTime":39,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1N30.YSSIi0H7JLEFdO5flMLzOnr0v1hau8v1_AoYo8nFX68","level":"info","message":"auth send jwt","requestID":"af56d17102b972de525ea2f55e1635e4"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"af56d17102b972de525ea2f55e1635e4","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"af56d17102b972de525ea2f55e1635e4"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:57Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.191527,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"af56d17102b972de525ea2f55e1635e4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969557,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1N30.YSSIi0H7JLEFdO5flMLzOnr0v1hau8v1_AoYo8nFX68"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"af56d17102b972de525ea2f55e1635e4","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"dc034711-69c4-4080-9568-6c15b620cccb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969557.993041} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"af56d17102b972de525ea2f55e1635e4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"af56d17102b972de525ea2f55e1635e4"} gateway-1 | {"time_local":"14/Mar/2025:16:25:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af56d17102b972de525ea2f55e1635e4"} device-1 | {"level":"info","message":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? 200 15ms","method":"GET","requestID":"af56d17102b972de525ea2f55e1635e4","responseTime":15,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q","level":"info","message":"auth send jwt","requestID":"a201027fcd01c306c686353df447541d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a201027fcd01c306c686353df447541d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a201027fcd01c306c686353df447541d"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645435,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a201027fcd01c306c686353df447541d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a201027fcd01c306c686353df447541d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.587379582Z"}]},"request_id":"168ea3f9-1a80-4627-a85b-a78dce0c9d94","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.0090644} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"a201027fcd01c306c686353df447541d","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a201027fcd01c306c686353df447541d"} gateway-1 | {"time_local":"14/Mar/2025:16:25:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a201027fcd01c306c686353df447541d"} device-1 | {"level":"info","message":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? 200 11ms","method":"GET","requestID":"a201027fcd01c306c686353df447541d","responseTime":11,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q","level":"info","message":"auth send jwt","requestID":"89184597c0b6db7d8be0829663214ce7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"89184597c0b6db7d8be0829663214ce7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"89184597c0b6db7d8be0829663214ce7"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.639995,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"89184597c0b6db7d8be0829663214ce7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"89184597c0b6db7d8be0829663214ce7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to run experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to book experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully booked experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.999578,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.859664,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"2b185188-6248-49e7-8322-9c8635c92c6b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.1146169} authorization-1 | {"level":"info","message":"POST /relations/query 200 24ms","method":"POST","requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.587379582Z"}]},"request_id":"24d696b8-b6ee-4780-bc28-137ba3e00094","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.118521} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? 200 35ms","method":"GET","requestID":"02b24040-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? 200 38ms","method":"GET","requestID":"02b26750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Setting up experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully locked booking for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to update booking for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully updated booking for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully set up experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully running experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02c48fc0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:52588","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.75956,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.793858,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.506949,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47baeaf6-4b80-446b-a2ca-5e20d96f8881","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2108948} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02c48fc0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"02c48fc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02c48fc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling 200 15ms","method":"POST","requestID":"02c48fc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"912491d8-7ea6-4050-925d-bc5b1293edf0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2197125} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02c74ee0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"b49b6181-33ba-4521-a455-18cd83ee8c39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2224958} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5acf829c-5fa2-4fb6-b36a-dc539bfde858","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.223116} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? 200 26ms","method":"GET","requestID":"02c41a90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 23ms","method":"POST","requestID":"89184597c0b6db7d8be0829663214ce7","responseTime":23,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.587379582Z"}]},"request_id":"74382dd3-3c35-4378-a9bd-5f9d5d1ee35c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.226247} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","method":"POST","requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"80c1d4b7-6d92-40db-a9a3-a5bd8c3a2580","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2316477} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.746897,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02c74ee0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"02c74ee0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"89184597c0b6db7d8be0829663214ce7"} gateway-1 | {"time_local":"14/Mar/2025:16:25:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.223","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"level":"info","message":"POST /experiments? 201 221ms","method":"POST","requestID":"89184597c0b6db7d8be0829663214ce7","responseTime":221,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? 200 37ms","method":"GET","requestID":"02c441a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02c74ee0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling 200 19ms","method":"POST","requestID":"02c74ee0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":19,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02ca8330-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q","level":"info","message":"auth send jwt","requestID":"15199a23fe7d4c224b65240a1e8101e8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"15199a23fe7d4c224b65240a1e8101e8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"15199a23fe7d4c224b65240a1e8101e8"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615874,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"15199a23fe7d4c224b65240a1e8101e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"15199a23fe7d4c224b65240a1e8101e8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92838db8-4c43-4fbd-817e-c7f899eb787c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.25095} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.271002,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02ca8330-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"02ca8330-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.539214631Z"}]},"request_id":"5ba83043-7f6f-4c26-971b-a1eae19daa5d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2548575} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02ca8330-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"15199a23fe7d4c224b65240a1e8101e8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling 200 13ms","method":"POST","requestID":"02ca8330-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02ccf430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"15199a23fe7d4c224b65240a1e8101e8"} gateway-1 | {"time_local":"14/Mar/2025:16:25:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15199a23fe7d4c224b65240a1e8101e8"} device-1 | {"level":"info","message":"GET /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea? 200 14ms","method":"GET","requestID":"15199a23fe7d4c224b65240a1e8101e8","responseTime":14,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea?"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"584269bd-a87e-4e59-bf15-123545a06fa3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2628963} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.408857,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q","level":"info","message":"auth send jwt","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02ccf430-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"02ccf430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02ccf430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling 200 9ms","method":"POST","requestID":"02ccf430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784394,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Building connection plan","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"8efeb084-a86e-48fa-a2f1-c3ba6d82a873"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"234e74ce-40b5-4574-beb0-80a434a8103c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9767395e-41c0-4844-8cec-cb876d48e5c5"}]},"level":"info","message":"Built pairwise service configurations","requestID":"89184597c0b6db7d8be0829663214ce7"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"89184597c0b6db7d8be0829663214ce7"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:25:55.587379582Z"}]},"request_id":"5672b60a-47f2-4140-ba96-24e081b41b6e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.2730057} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.625356,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4"} gateway-1 | {"time_local":"14/Mar/2025:16:25:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4"} device-1 | {"level":"info","message":"GET /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0? 200 10ms","method":"GET","requestID":"24e371a3b64bcbfa37c3e2bea9fbbdd4","responseTime":10,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969558,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU1OH0.s7gOKcNwFO-nQaXt41s2bTP1qg1vXh60IsO2evfAc7Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"f7e14e5d-a1c3-4a38-8fd8-2ebe0f2ce0d3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.3068945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db7baa7d-6ca6-4f77-99ef-c84b53ceb995","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.30712} authorization-1 | {"level":"info","message":"POST /relations/update 200 29ms","method":"POST","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7'","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7'","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"02cef000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"89184597c0b6db7d8be0829663214ce7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02dde420-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8e310cdd-22cc-4dd1-97e1-436801e97ad0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.3750002} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.232589,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02dde420-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"02dde420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02dde420-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling 200 35ms","method":"POST","requestID":"02dde420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling"} device-1 | {"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"02e3b080-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e38dadbe-b34e-44b1-9d37-90efddd82e9c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969558.4125352} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.271823,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:25:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"02e3b080-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"02e3b080-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"02e3b080-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling 200 8ms","method":"POST","requestID":"02e3b080-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling"} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 2279834503204298512 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:HC+A\r\na=ice-pwd:QZR1uvBewhlxKc0zvphYUIrr\r\na=ice-options:trickle\r\na=fingerprint:sha-256 7A:CC:82:D3:2B:C0:95:02:42:27:9D:5F:9A:13:12:B2:FA:67:BD:09:86:D8:AE:7E:6C:89:83:6A:86:D1:79:FA\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3197729753 1 udp 2113937151 a2215b95-c56c-4512-b2a8-be55852d71d2.local 35582 typ host generation 0 ufrag HC+A network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0'"} device-1 | {"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ac0f467d19ac2495b8e5ae9b3f9f88b9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ac0f467d19ac2495b8e5ae9b3f9f88b9","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/37b37d78-12f1-4770-8d86-fad7e3aaecd0"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"}}},"level":"info","message":"received a callback","requestID":"ac0f467d19ac2495b8e5ae9b3f9f88b9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"ac0f467d19ac2495b8e5ae9b3f9f88b9","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"ac0f467d19ac2495b8e5ae9b3f9f88b9"} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4af44c4cb9acc060aa9a683e4b0dd258","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"4af44c4cb9acc060aa9a683e4b0dd258","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"}}},"level":"info","message":"received a callback","requestID":"4af44c4cb9acc060aa9a683e4b0dd258"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"041ca5b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F43065ecd-9870-400c-996d-61d18011b1a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"13dba2cf-1204-48ed-95a0-79d964e735e8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.4639657} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.269755,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"041ca5b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"041ca5b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"041ca5b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/43065ecd-9870-400c-996d-61d18011b1a7 200 8ms","method":"GET","requestID":"041ca5b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"4af44c4cb9acc060aa9a683e4b0dd258","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"4af44c4cb9acc060aa9a683e4b0dd258"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"04202820-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"becbf545-a299-484b-8adb-044380b764e4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.4874487} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.855778,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"04202820-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"04202820-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"04202820-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling 200 9ms","method":"POST","requestID":"04202820-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0421d5d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0acac5a6-57ad-4cc4-83f4-8a79214f69dd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.4980018} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.673588,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0421d5d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0421d5d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0421d5d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling 200 9ms","method":"POST","requestID":"0421d5d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE","level":"info","message":"auth send jwt","requestID":"730c068e3498bed927d816cedbab4542"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"730c068e3498bed927d816cedbab4542","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","requestID":"730c068e3498bed927d816cedbab4542"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.653821,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"730c068e3498bed927d816cedbab4542","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969560,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"730c068e3498bed927d816cedbab4542","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","requestID":"730c068e3498bed927d816cedbab4542"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"730c068e3498bed927d816cedbab4542"} experiment-1 | {"level":"info","message":"GET /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce 200 13ms","method":"GET","requestID":"730c068e3498bed927d816cedbab4542","responseTime":13,"status":200,"url":"/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE","level":"info","message":"auth send jwt","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.669454,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969560,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Attempting to finish experiment","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.647341,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969560,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7","device":"37b37d78-12f1-4770-8d86-fad7e3aaecd0","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7cfb0196-b021-4ef1-a03e-b2496ba167ea","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b00d66400305c218507099c78f70561e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F43065ecd-9870-400c-996d-61d18011b1a7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F43065ecd-9870-400c-996d-61d18011b1a7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"2af24798-aa46-42e5-8242-a28cc55fe4cf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6121628} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b00d66400305c218507099c78f70561e","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9778733-068e-4a19-9ee1-4dba6313a7e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6125474} 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/37b37d78-12f1-4770-8d86-fad7e3aaecd0"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"}}},"level":"info","message":"received a callback","requestID":"b00d66400305c218507099c78f70561e"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"640d7aa1eb5e1a8a2e9412854f82df87","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"640d7aa1eb5e1a8a2e9412854f82df87","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"}}},"level":"info","message":"received a callback","requestID":"640d7aa1eb5e1a8a2e9412854f82df87"} device-1 | {"data":{"peerconnection":"43065ecd-9870-400c-996d-61d18011b1a7","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/43065ecd-9870-400c-996d-61d18011b1a7 204 39ms","method":"DELETE","requestID":"04313f20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":204,"url":"/peerconnections/43065ecd-9870-400c-996d-61d18011b1a7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"},"level":"info","message":"Successfully finished experiment","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"043a66e0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F37b37d78-12f1-4770-8d86-fad7e3aaecd0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9f84a482-e05a-41e9-938b-10131870fe0d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6606474} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.89199,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"043a66e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"043a66e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"043a66e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling 200 10ms","method":"POST","requestID":"043a66e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"043c62b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"025ff7b3-1f6d-4f31-bfa7-4b7fd78f7097","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6696062} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"44519a49-7ed2-41a5-acb1-518c8511b89e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6698527} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","method":"POST","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f","responseTime":18,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7cfb0196-b021-4ef1-a03e-b2496ba167ea","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2695801-0e8c-47cd-9d20-376c9c69c44e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.6716368} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.463572,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"043c62b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"043c62b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"043c62b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling 200 8ms","method":"POST","requestID":"043c62b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f"} experiment-1 | {"level":"info","message":"DELETE /experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce 204 185ms","method":"DELETE","requestID":"48dcafe9c64ccc026bd56e6bb28e8a9f","responseTime":185,"status":204,"url":"/experiments/b5a538e7-a7b7-49aa-ae59-ec8fbfddc1ce"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2290","request_time":"4.193","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"b44af6afd0d83d680896327b361f2a82"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 160ms","method":"POST","requestID":"b00d66400305c218507099c78f70561e","responseTime":160,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch","requestID":"b00d66400305c218507099c78f70561e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 168ms","method":"POST","requestID":"640d7aa1eb5e1a8a2e9412854f82df87","responseTime":168,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.171","http_referrer":"","http_user_agent":"node-fetch","requestID":"640d7aa1eb5e1a8a2e9412854f82df87"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE","level":"info","message":"auth send jwt","requestID":"75c7cc435c3e114d2052ad71492ce207"} authentication-1 | {"level":"info","message":"GET /auth 200 14ms","method":"GET","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":14,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2162","request_time":"2.834","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6c6b024911658b2a9865a8b7a05fdfe5"} device-1 | {"level":"info","message":"postDevices called","requestID":"75c7cc435c3e114d2052ad71492ce207"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.716385,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/37b37d78-12f1-4770-8d86-fad7e3aaecd0' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"75c7cc435c3e114d2052ad71492ce207","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969560,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7cfb0196-b021-4ef1-a03e-b2496ba167ea' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a68eb739-1f02-4169-9bd9-3e70384a5f8c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8235722} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"232bbeae-30f7-4e16-bdaf-d4849e9ee693","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8291144} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"df71040e-9227-4387-b5ef-56a060b4a360","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8390188} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c059210c-f7c8-4368-957f-2429124d58b2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8391545} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"79b83a04-7c9d-4b82-b4c5-87d60dcc7201","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8447115} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"75c7cc435c3e114d2052ad71492ce207"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.075","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"75c7cc435c3e114d2052ad71492ce207"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"75c7cc435c3e114d2052ad71492ce207","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE","level":"info","message":"auth send jwt","requestID":"1af5e351dcc117fb5b995f99ec2fcea5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"1af5e351dcc117fb5b995f99ec2fcea5"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.653289,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1af5e351dcc117fb5b995f99ec2fcea5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969560,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MH0.fCLiWVPNMJizx33wF_t3Vleyprt2Hr0AMMvhUCKeLCE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"dcc01932-9665-4d73-9bc8-ff09ee4ccfa9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8681173} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"450c5d46-be4b-4087-b624-07e9d16a8363","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.872025} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"fbd8fd05-8dbc-42e2-9731-2473c57718af","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8784506} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1a15558-654d-49c1-a314-21de3b2c13e5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.8786547} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":9,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"c032db67-ff5d-491e-9571-69e42fa990b0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969560.882294} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1af5e351dcc117fb5b995f99ec2fcea5"} gateway-1 | {"time_local":"14/Mar/2025:16:26:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1af5e351dcc117fb5b995f99ec2fcea5"} device-1 | {"level":"info","message":"POST /devices? 201 33ms","method":"POST","requestID":"1af5e351dcc117fb5b995f99ec2fcea5","responseTime":33,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"4dc69aba0edd4714e60733e6a483eebd"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":4,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":29,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4dc69aba0edd4714e60733e6a483eebd"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934529,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4dc69aba0edd4714e60733e6a483eebd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693505,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"5b23abcd-a9a1-4563-bb58-ede327911db9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.7742634} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"d04d1965-1348-4f82-9b13-8ced627a7eb3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.7751987} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68c3d2ee-883a-4764-9f07-cac359a03248","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.7805805} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"94d63bf7-9552-44a3-86ea-6c61ab1dfe58","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.7838984} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"c01a53d4-3e51-4191-b2f2-eb5ed62151fa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.8117528} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.082","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10"} device-1 | {"level":"info","message":"PATCH /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734 200 50ms","method":"PATCH","requestID":"4f0d7f9140db1291ca5e50b7ab7e6f10","responseTime":50,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"c18c675a091fc1b669937a7add1d1b69"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c18c675a091fc1b669937a7add1d1b69","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c18c675a091fc1b669937a7add1d1b69"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658621,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c18c675a091fc1b669937a7add1d1b69","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c18c675a091fc1b669937a7add1d1b69","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"d3f35f10-49ed-4111-97c3-bd4c8ec03ef4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.859382} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4dc69aba0edd4714e60733e6a483eebd"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.131","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4dc69aba0edd4714e60733e6a483eebd"} device-1 | {"level":"info","message":"PATCH /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826 200 101ms","method":"PATCH","requestID":"4dc69aba0edd4714e60733e6a483eebd","responseTime":101,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.119206,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"9b8193fcc2b7d87dcd47e183cc0cd462","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c18c675a091fc1b669937a7add1d1b69"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"c18c675a091fc1b669937a7add1d1b69"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/websocket 200 56ms","method":"POST","requestID":"c18c675a091fc1b669937a7add1d1b69","responseTime":56,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/websocket 200 38ms","method":"POST","requestID":"9b8193fcc2b7d87dcd47e183cc0cd462","responseTime":38,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"6c1b7d3391767b2214694b8a9d8596fa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6c1b7d3391767b2214694b8a9d8596fa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6c1b7d3391767b2214694b8a9d8596fa"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.77291,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6c1b7d3391767b2214694b8a9d8596fa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"6c1b7d3391767b2214694b8a9d8596fa","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"8313f0ef-d064-4532-995a-75fbeb868397","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.9580233} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6c1b7d3391767b2214694b8a9d8596fa","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6c1b7d3391767b2214694b8a9d8596fa"} device-1 | {"level":"info","message":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? 200 34ms","method":"GET","requestID":"6c1b7d3391767b2214694b8a9d8596fa","responseTime":34,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6c1b7d3391767b2214694b8a9d8596fa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0","level":"info","message":"auth send jwt","requestID":"0381b2261db2ac2a2fc68ba8460210d0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0381b2261db2ac2a2fc68ba8460210d0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0381b2261db2ac2a2fc68ba8460210d0"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842588,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0381b2261db2ac2a2fc68ba8460210d0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969561,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2MX0.t0M0-5qn4cSfQbK-tMKeTozLM3n_TOHf29fgjcJDXT0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0381b2261db2ac2a2fc68ba8460210d0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"84a43a6d-418a-4fcc-8561-532bc7da22da","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969561.9732814} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0381b2261db2ac2a2fc68ba8460210d0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0381b2261db2ac2a2fc68ba8460210d0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0381b2261db2ac2a2fc68ba8460210d0"} device-1 | {"level":"info","message":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? 200 10ms","method":"GET","requestID":"0381b2261db2ac2a2fc68ba8460210d0","responseTime":10,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc","level":"info","message":"auth send jwt","requestID":"25deebb7cc86bbc50b4207ef232f197f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"25deebb7cc86bbc50b4207ef232f197f","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"25deebb7cc86bbc50b4207ef232f197f"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.706172,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"25deebb7cc86bbc50b4207ef232f197f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"25deebb7cc86bbc50b4207ef232f197f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to run experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to book experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully booked experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.634671,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673422,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"68a3172f-7d9f-449f-aae3-aa67d9179247","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1035419} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"1d720f33-6b8d-46b5-b7f2-5741cd365bd2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.104608} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? 200 36ms","method":"GET","requestID":"0512c580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? 200 12ms","method":"GET","requestID":"05169610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Setting up experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully locked booking for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to update booking for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully updated booking for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully set up experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"051e5e40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663079,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully running experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.711403,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.898725,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c3680b58-705c-4673-9c19-619420e8655e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.154904} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"051e5e40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"051e5e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"7ef9b3d8-bf9d-4c0d-ba91-20b2927cce66","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1565976} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"305f10f8-f290-4cbd-b558-271d5a65d37e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1591518} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"051e5e40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling 200 13ms","method":"POST","requestID":"051e5e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"05211d60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F389bf370-3c05-42ef-981c-4257293d267c#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F389bf370-3c05-42ef-981c-4257293d267c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ea7d378c-32dd-4265-99af-ab289fbd633a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1664953} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b41a04bb-c152-4311-bcd1-342c373d2626","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1668708} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? 200 22ms","method":"GET","requestID":"051e1020-00f1-11f0-9a2b-c98a3cf1c544","responseTime":22,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","method":"POST","requestID":"25deebb7cc86bbc50b4207ef232f197f","responseTime":17,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? 200 24ms","method":"GET","requestID":"051de910-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826?"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95af5b50-3080-4736-bf3e-4c1947b5930b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.17078} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.371278,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"05211d60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"05211d60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"052255e0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"25deebb7cc86bbc50b4207ef232f197f"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"05211d60-00f1-11f0-9a2b-c98a3cf1c544"} gateway-1 | {"time_local":"14/Mar/2025:16:26:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 172ms","method":"POST","requestID":"25deebb7cc86bbc50b4207ef232f197f","responseTime":172,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling 200 12ms","method":"POST","requestID":"05211d60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8c0b6cbf-aa2a-4aa1-ac47-f7c128ab9614","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1793935} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.749566,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"052255e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"052255e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc","level":"info","message":"auth send jwt","requestID":"4cf22221874d9a30a81b61c57e9a8b98"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4cf22221874d9a30a81b61c57e9a8b98","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4cf22221874d9a30a81b61c57e9a8b98"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"052255e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling 200 11ms","method":"POST","requestID":"052255e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.060139,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"052478c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4cf22221874d9a30a81b61c57e9a8b98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4cf22221874d9a30a81b61c57e9a8b98","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.839002375Z"}]},"request_id":"c4c95894-dc67-4ce2-8ecc-8e61eaadd61b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.1921995} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"200fd6d6-8d85-44ae-b96b-dd4494ebf4f7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.192409} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4cf22221874d9a30a81b61c57e9a8b98","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.864185,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"052478c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"052478c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4cf22221874d9a30a81b61c57e9a8b98"} gateway-1 | {"time_local":"14/Mar/2025:16:26:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4cf22221874d9a30a81b61c57e9a8b98"} device-1 | {"level":"info","message":"GET /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826? 200 14ms","method":"GET","requestID":"4cf22221874d9a30a81b61c57e9a8b98","responseTime":14,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"052478c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling 200 11ms","method":"POST","requestID":"052478c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Building connection plan","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"7fb3737a-85f7-4e36-9314-5705dbc2cf51"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"f26c07f8-3ce4-439f-8a94-9cf505b25796"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"49de4f13-716c-4712-96bf-be52e0c74b3c"}]},"level":"info","message":"Built pairwise service configurations","requestID":"25deebb7cc86bbc50b4207ef232f197f"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"25deebb7cc86bbc50b4207ef232f197f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc","level":"info","message":"auth send jwt","requestID":"ff2efd1519c73137062a5b364bcb0aae"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff2efd1519c73137062a5b364bcb0aae","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff2efd1519c73137062a5b364bcb0aae"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.916614,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff2efd1519c73137062a5b364bcb0aae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969562,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Mn0.nlzeYUfXJC4gy-pjKSLROeBSzcpKhqoPrFODOvZAcMc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ff2efd1519c73137062a5b364bcb0aae","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:00.878439167Z"}]},"request_id":"656b440c-dfaf-4af7-90f5-5554d090f002","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.2115855} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ff2efd1519c73137062a5b364bcb0aae","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff2efd1519c73137062a5b364bcb0aae"} gateway-1 | {"time_local":"14/Mar/2025:16:26:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff2efd1519c73137062a5b364bcb0aae"} device-1 | {"level":"info","message":"GET /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734? 200 11ms","method":"GET","requestID":"ff2efd1519c73137062a5b364bcb0aae","responseTime":11,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"71d54ffc-46f6-456f-9f20-335df22e8edd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.2155037} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d0bea894-7089-4e54-89c3-70fd0c843d09","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.216057} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb'","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb'","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 52ms","method":"POST","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":52,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"05269ba0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"25deebb7cc86bbc50b4207ef232f197f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"05371660-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d24bfe8a-0267-4dc9-9ae1-6e759b96af39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.3152332} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.671919,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"05371660-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"05371660-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"05371660-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling 200 29ms","method":"POST","requestID":"05371660-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"053bd150-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecf9ee90-5812-4d0e-8947-c5772d555e37","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969562.345852} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.482057,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"053bd150-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"053bd150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"053bd150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling 200 9ms","method":"POST","requestID":"053bd150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling"} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee6160979e15098f407c9fc55a617fac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee6160979e15098f407c9fc55a617fac","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/de735ba9-822e-40c6-8f93-b43c6c0cb826"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"}}},"level":"info","message":"received a callback","requestID":"ee6160979e15098f407c9fc55a617fac"} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"ee6160979e15098f407c9fc55a617fac","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee6160979e15098f407c9fc55a617fac"} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a35f12dfe37a7aa6df15a5353b5099b5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a35f12dfe37a7aa6df15a5353b5099b5","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/de735ba9-822e-40c6-8f93-b43c6c0cb826"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"}}},"level":"info","message":"received a callback","requestID":"a35f12dfe37a7aa6df15a5353b5099b5"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"06747860-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88466531-3581-42d4-bc49-b662c053e5fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9167bda7-910b-4c23-aba5-4044876a166f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.3974788} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.613299,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"06747860-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb","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","method":"POST","requestID":"06747860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"06747860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/88466531-3581-42d4-bc49-b662c053e5fb 200 13ms","method":"GET","requestID":"06747860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 41ms","method":"POST","requestID":"a35f12dfe37a7aa6df15a5353b5099b5","responseTime":41,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"a35f12dfe37a7aa6df15a5353b5099b5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0679cf90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3b7a637f-5b06-4136-81b4-c52ff6c674dc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.430357} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.422553,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0679cf90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0679cf90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0679cf90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling 200 9ms","method":"POST","requestID":"0679cf90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"067b7d40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3bbcecd2-f073-4c6e-a7c2-311ab3d6cafd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.440606} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.132822,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"067b7d40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"067b7d40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"067b7d40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling 200 8ms","method":"POST","requestID":"067b7d40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"08cc9aff48654fdca9dcc92e3ee54e48"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"08cc9aff48654fdca9dcc92e3ee54e48","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/389bf370-3c05-42ef-981c-4257293d267c","requestID":"08cc9aff48654fdca9dcc92e3ee54e48"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.276766,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"08cc9aff48654fdca9dcc92e3ee54e48","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"08cc9aff48654fdca9dcc92e3ee54e48","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/389bf370-3c05-42ef-981c-4257293d267c","requestID":"08cc9aff48654fdca9dcc92e3ee54e48"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/389bf370-3c05-42ef-981c-4257293d267c HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"08cc9aff48654fdca9dcc92e3ee54e48"} experiment-1 | {"level":"info","message":"GET /experiments/389bf370-3c05-42ef-981c-4257293d267c 200 31ms","method":"GET","requestID":"08cc9aff48654fdca9dcc92e3ee54e48","responseTime":31,"status":200,"url":"/experiments/389bf370-3c05-42ef-981c-4257293d267c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"0419a24ee29b8811ba707fa5be9575be"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0419a24ee29b8811ba707fa5be9575be","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/389bf370-3c05-42ef-981c-4257293d267c","requestID":"0419a24ee29b8811ba707fa5be9575be"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.914104,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0419a24ee29b8811ba707fa5be9575be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0419a24ee29b8811ba707fa5be9575be","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Attempting to finish experiment","requestID":"0419a24ee29b8811ba707fa5be9575be"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.7385,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"fef3e14f-d6d2-4525-9172-35dd3b9ca734","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"de735ba9-822e-40c6-8f93-b43c6c0cb826","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eb8fcabd0da2298a0ce743de411fe36c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eb8fcabd0da2298a0ce743de411fe36c","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0836f2f430d7e702e7aed93c8cb11c1f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0836f2f430d7e702e7aed93c8cb11c1f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88466531-3581-42d4-bc49-b662c053e5fb': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F88466531-3581-42d4-bc49-b662c053e5fb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"bffa57a7-3608-41e5-af88-d316cb70a870","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.5538716} 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/de735ba9-822e-40c6-8f93-b43c6c0cb826"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"}}},"level":"info","message":"received a callback","requestID":"eb8fcabd0da2298a0ce743de411fe36c"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46616904-26bc-4379-908c-6cb02359256f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.5541568} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"}}},"level":"info","message":"received a callback","requestID":"0836f2f430d7e702e7aed93c8cb11c1f"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"88466531-3581-42d4-bc49-b662c053e5fb","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/88466531-3581-42d4-bc49-b662c053e5fb 204 91ms","method":"DELETE","requestID":"0687b240-00f1-11f0-9a2b-c98a3cf1c544","responseTime":91,"status":204,"url":"/peerconnections/88466531-3581-42d4-bc49-b662c053e5fb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/389bf370-3c05-42ef-981c-4257293d267c"},"level":"info","message":"Successfully finished experiment","requestID":"0419a24ee29b8811ba707fa5be9575be"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"069805f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fde735ba9-822e-40c6-8f93-b43c6c0cb826","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e06309a6-c37a-4c53-a244-edad02de9cad","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.6278386} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.565626,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"069805f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"069805f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"069805f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling 200 10ms","method":"POST","requestID":"069805f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0699dab0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"11c3992f-a28c-479f-bec0-310b641fa64d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.6363392} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F389bf370-3c05-42ef-981c-4257293d267c': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F389bf370-3c05-42ef-981c-4257293d267c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"3fe2254d-8ba9-49e9-b179-4cad6860ad80","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.6366909} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"0419a24ee29b8811ba707fa5be9575be","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffef3e14f-d6d2-4525-9172-35dd3b9ca734","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d7d7acd-a72a-4688-936b-bf7c62ed5d8e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.6412797} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.438207,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0699dab0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0699dab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0699dab0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling 200 11ms","method":"POST","requestID":"0699dab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/389bf370-3c05-42ef-981c-4257293d267c","requestID":"0419a24ee29b8811ba707fa5be9575be"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/389bf370-3c05-42ef-981c-4257293d267c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0419a24ee29b8811ba707fa5be9575be"} experiment-1 | {"level":"info","message":"DELETE /experiments/389bf370-3c05-42ef-981c-4257293d267c 204 183ms","method":"DELETE","requestID":"0419a24ee29b8811ba707fa5be9575be","responseTime":183,"status":204,"url":"/experiments/389bf370-3c05-42ef-981c-4257293d267c"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2162","request_time":"2.812","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4066e81bb24284c4b5156bf7f832086b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2162","request_time":"2.780","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4a5d9056bc10a705248c23e096a85978"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"eb8fcabd0da2298a0ce743de411fe36c","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"eb8fcabd0da2298a0ce743de411fe36c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 137ms","method":"POST","requestID":"0836f2f430d7e702e7aed93c8cb11c1f","responseTime":137,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"0836f2f430d7e702e7aed93c8cb11c1f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"0c763d616d06305582f4ede10ae19660"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":4,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/de735ba9-822e-40c6-8f93-b43c6c0cb826' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"0c763d616d06305582f4ede10ae19660"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.794039,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c763d616d06305582f4ede10ae19660","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fef3e14f-d6d2-4525-9172-35dd3b9ca734' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16fa1a26-8eeb-4e32-b392-c38a141c3315","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d7edb6df-dc47-4b02-adad-65d5a4ee4794","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7165108} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f4b6f54-50f0-41c9-ae0c-f7c127b15514","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7228389} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16fa1a26-8eeb-4e32-b392-c38a141c3315","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"593edf62-0406-44c5-88b2-96f0672d2121","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7333512} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8824c60-c5cb-42d5-a0ff-01501e95253a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7334862} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16fa1a26-8eeb-4e32-b392-c38a141c3315","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F16fa1a26-8eeb-4e32-b392-c38a141c3315","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:04.733334506Z"}]},"request_id":"60d86f78-4891-4b40-b74d-8fcad1905970","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7387984} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0c763d616d06305582f4ede10ae19660"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"0c763d616d06305582f4ede10ae19660","responseTime":46,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c763d616d06305582f4ede10ae19660"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"507949a65f40fdd4f2d109672245f69f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"507949a65f40fdd4f2d109672245f69f"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.788263,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"507949a65f40fdd4f2d109672245f69f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83f40487-a938-48eb-b086-696964243d0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a5a49eb0-071d-4b6c-b724-1eb1cc9a87c6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7891297} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"30cb9226-b7de-42e1-9824-229381074b39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.7950969} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":5,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83f40487-a938-48eb-b086-696964243d0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"055fd2db-ae14-475c-adc1-16175da72036","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.806837} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59d8efd1-ba19-4f49-993d-7ca5891ebf5f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.8070424} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83f40487-a938-48eb-b086-696964243d0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83f40487-a938-48eb-b086-696964243d0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:04.806820856Z"}]},"request_id":"ef8305f1-a58b-487b-99d4-2dacef2a17b9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.8364785} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"507949a65f40fdd4f2d109672245f69f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"507949a65f40fdd4f2d109672245f69f"} device-1 | {"level":"info","message":"POST /devices? 201 92ms","method":"POST","requestID":"507949a65f40fdd4f2d109672245f69f","responseTime":92,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"850580698ed6eba5006bc630caa81174"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"850580698ed6eba5006bc630caa81174","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"850580698ed6eba5006bc630caa81174"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.710211,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"850580698ed6eba5006bc630caa81174","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc24f49c5-f893-4e7e-af39-83cba69758e7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"25b8b1cf-6fac-438f-893f-886fa52031b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.8882143} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c02b003e-248e-497d-a81b-0e3e8d38bb6c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.8923564} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc24f49c5-f893-4e7e-af39-83cba69758e7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"7a01986b-1a0d-4e17-816f-41a8a5da0f08","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9010744} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b5bd00e-b90a-47bd-a81c-d29ec043560c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9013476} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc24f49c5-f893-4e7e-af39-83cba69758e7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc24f49c5-f893-4e7e-af39-83cba69758e7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:04.901057405Z"}]},"request_id":"9e788789-7978-45eb-a93f-58c07c71d994","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9289546} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"850580698ed6eba5006bc630caa81174"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.091","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"850580698ed6eba5006bc630caa81174"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"850580698ed6eba5006bc630caa81174","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"5863c91a49f03f36e04ce298ace5066b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"5863c91a49f03f36e04ce298ace5066b"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.68451,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:04Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5863c91a49f03f36e04ce298ace5066b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9ba98089-60a7-4954-b62e-16d0b5627d67","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9097602e-5a11-45c3-9e21-4316131d2354","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9514084} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84af65d2-936a-4803-8104-10d336637a03","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9800594} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9ba98089-60a7-4954-b62e-16d0b5627d67","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a43daa37-9198-4f92-bdd8-e620a5aa7c2a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9888444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"398a3fb6-b6c5-43c5-8f3f-a8ed55be6364","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9890046} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9ba98089-60a7-4954-b62e-16d0b5627d67","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9ba98089-60a7-4954-b62e-16d0b5627d67","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:04.988829833Z"}]},"request_id":"efd467f4-edea-4c04-850b-a9dc244af8ca","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969564.9935617} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"5863c91a49f03f36e04ce298ace5066b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5863c91a49f03f36e04ce298ace5066b"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"5863c91a49f03f36e04ce298ace5066b","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ","level":"info","message":"auth send jwt","requestID":"84745460f4dc8310d6dfd537ae847653"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"84745460f4dc8310d6dfd537ae847653"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.700646,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"84745460f4dc8310d6dfd537ae847653","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969564,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NH0.qaWj7lMbYeCl1WZI_ZcDJtny_s9cQoW-QOoJonWgpqQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F18dbaa64-fb4d-4d98-9aef-683cbf04858b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"62165b9e-27f5-4aa2-8361-cd0f04abbd55","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.042962} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd3fe8fd-ac4e-44fa-ac78-a9f2715208d0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.0469081} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F18dbaa64-fb4d-4d98-9aef-683cbf04858b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c32a5dea-510d-4cf9-a744-c16e6757fa3e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.0812268} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac46de48-ac5a-489d-9041-7dc174be2e5c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.081449} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F18dbaa64-fb4d-4d98-9aef-683cbf04858b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F18dbaa64-fb4d-4d98-9aef-683cbf04858b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.081213474Z"}]},"request_id":"bd9cbeb6-4347-4d5c-ba66-4d518b5fa621","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.0849795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"84745460f4dc8310d6dfd537ae847653"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84745460f4dc8310d6dfd537ae847653"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"84745460f4dc8310d6dfd537ae847653","responseTime":61,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"385c75cafb813b459b9ec746648bd9b3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"385c75cafb813b459b9ec746648bd9b3"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.269324,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"385c75cafb813b459b9ec746648bd9b3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e460e07a-d546-4cb4-8dd6-8b5100572737","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.1335182} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e0e8d19-9242-4fb4-b474-682e8705234c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.1376126} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"55f26b2a-635c-48e3-b728-085c7f065979","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.171103} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac17a1e7-33af-46ad-8a78-b60d3fad6a94","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.171203} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.171090736Z"}]},"request_id":"0d450040-f335-421d-867e-cb1bf044dd96","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.1757698} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"385c75cafb813b459b9ec746648bd9b3"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"385c75cafb813b459b9ec746648bd9b3"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"385c75cafb813b459b9ec746648bd9b3","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"6dd2d65a1d88be6d36dcb8414a47273f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6dd2d65a1d88be6d36dcb8414a47273f"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.742434,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6dd2d65a1d88be6d36dcb8414a47273f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d87f04f-8abe-43dd-ad40-676066a9ba4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5ef67b39-f6cc-46c5-8855-d1346268dbf5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.2403233} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d43cf6d-6863-4ba3-9a28-cd30f1c4e24f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.2677228} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d87f04f-8abe-43dd-ad40-676066a9ba4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"65edef43-b1d2-49a0-b93d-d8ff8e76d210","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.3261397} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b532805-80b8-4cf7-883a-3c663026ccaa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.3263378} authorization-1 | {"level":"info","message":"POST /relations/update 200 60ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":60,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d87f04f-8abe-43dd-ad40-676066a9ba4e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4d87f04f-8abe-43dd-ad40-676066a9ba4e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.326118010Z"}]},"request_id":"659f8e7b-1f21-4d62-907b-35d3d876a28b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.3306348} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6dd2d65a1d88be6d36dcb8414a47273f"} device-1 | {"level":"info","message":"POST /devices? 201 149ms","method":"POST","requestID":"6dd2d65a1d88be6d36dcb8414a47273f","responseTime":149,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.153","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6dd2d65a1d88be6d36dcb8414a47273f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.866191,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9ee539e-0d35-4063-b518-e0fdf30caa0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0658f53d-246f-4de7-9f65-ceb0c7a85b1e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4426055} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cbf15e36-6d95-4933-9487-1c0f6d2d7e5e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4497123} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9ee539e-0d35-4063-b518-e0fdf30caa0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a2471880-1f6a-408a-a218-1bec407a6280","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4634876} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"336f7dca-3acd-4b39-b43f-3901c2a3ac88","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4637935} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":20,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9ee539e-0d35-4063-b518-e0fdf30caa0f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa9ee539e-0d35-4063-b518-e0fdf30caa0f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.463464058Z"}]},"request_id":"87c41827-db13-4038-906b-10c96321eb9a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4721966} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d"} device-1 | {"level":"info","message":"POST /devices? 201 114ms","method":"POST","requestID":"f9477ac4ae4c2dfc4d671d3d09a9e92d","responseTime":114,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"159fd950b6cc7b8869a098511d22b319"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"159fd950b6cc7b8869a098511d22b319"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.623146,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"159fd950b6cc7b8869a098511d22b319","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fafb50ee4-5fbb-4265-b21d-cd00b6ea9821","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"be0fa678-ba07-4735-8996-d39fbe4756eb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.4973586} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f7b62ae7-f9b9-45b0-8481-74d42b9f85d2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.501113} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fafb50ee4-5fbb-4265-b21d-cd00b6ea9821","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a83385a0-66f5-4d92-9e07-5caad634a69a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.5123975} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5f86e61-8051-4617-b1ff-2336d2418652","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.5125282} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fafb50ee4-5fbb-4265-b21d-cd00b6ea9821","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fafb50ee4-5fbb-4265-b21d-cd00b6ea9821","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.512381825Z"}]},"request_id":"39f58803-c298-47ea-bbc8-4c8726d09577","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.5160496} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"159fd950b6cc7b8869a098511d22b319"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"159fd950b6cc7b8869a098511d22b319"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"159fd950b6cc7b8869a098511d22b319","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.756662,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86cc93ea-afbf-4d26-beaa-05102702f022","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"46930af5-08ee-44a3-9797-5bf5acb1dd77","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.5673134} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08d48fee-278a-4c88-8582-56701d3ee6c3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.5719268} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86cc93ea-afbf-4d26-beaa-05102702f022","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"b83f0f47-7811-4b24-af60-c2eb8ef42518","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6028705} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c780614-b8cc-49b7-a098-8910990c28f0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.603145} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":33,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86cc93ea-afbf-4d26-beaa-05102702f022","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86cc93ea-afbf-4d26-beaa-05102702f022","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.602849105Z"}]},"request_id":"d8ad8aec-6a56-4535-9f28-212b996e17cd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6073718} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3"} device-1 | {"level":"info","message":"POST /devices? 201 85ms","method":"POST","requestID":"3e65e3c13b03ef5b0788c8994d4cbca3","responseTime":85,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"4164a279086cd7bf956b720574869081"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4164a279086cd7bf956b720574869081","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"4164a279086cd7bf956b720574869081"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.890058,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4164a279086cd7bf956b720574869081","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5c7c317b-4dd7-410f-8793-843eeaaf5d81","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6511862} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbe5c4aa-c68c-46e7-b9e1-9c56dc350760","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6552145} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3d4a4ba9-dcea-4f35-a49c-957209e35b31","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6646118} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"57c13f7b-27f2-493d-853f-d0fc5be4671a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6648512} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.664597323Z"}]},"request_id":"8f936323-35b6-41c1-805a-79205e947a04","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.6683981} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4164a279086cd7bf956b720574869081"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4164a279086cd7bf956b720574869081"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"4164a279086cd7bf956b720574869081","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"7994099187228fa922909079df01a255"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7994099187228fa922909079df01a255","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"7994099187228fa922909079df01a255"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.919253,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"7994099187228fa922909079df01a255","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"397f548c-fde8-480e-b355-8104e4d3862b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.711935} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b89239ba-5def-43be-8aea-8e226d3eaa38","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.716089} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"fcf9314f-a851-42f4-b285-1025f8eeaa7b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.7519493} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c0b33adc-893d-46df-acc1-4e7397bd6e65","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.75242} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.751930145Z"}]},"request_id":"0fce4bcb-f06d-407a-9ee5-d0f304cbbad9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.756182} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"7994099187228fa922909079df01a255"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"7994099187228fa922909079df01a255","responseTime":82,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7994099187228fa922909079df01a255"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"aa269e9f2ab711772ea84142e2058728"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"aa269e9f2ab711772ea84142e2058728"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.734661,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"aa269e9f2ab711772ea84142e2058728","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d8fb1e52-0314-4d1e-b4b5-46d187955c78","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8030567} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4221c9b0-730d-4ad9-960e-fe2165628867","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.807641} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"7d2a6cc7-2637-4f44-af4f-c0d3ce0c1e45","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8172357} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ad061f79-6d3c-4614-8a81-77916e77f65b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8173354} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":11,"status":200,"url":"/relations/update"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.083","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa269e9f2ab711772ea84142e2058728"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"aa269e9f2ab711772ea84142e2058728"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.817221660Z"}]},"request_id":"afe85e19-1772-49b0-a8c2-9353649d2372","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8417304} device-1 | {"level":"info","message":"POST /devices? 201 79ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":79,"status":201,"url":"/devices?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 22ms","method":"POST","requestID":"aa269e9f2ab711772ea84142e2058728","responseTime":22,"status":200,"url":"/relations/query"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"6d89ef709b458e278a28d9e5315f2a73"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6d89ef709b458e278a28d9e5315f2a73"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.598524,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6d89ef709b458e278a28d9e5315f2a73","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.664597323Z"}]},"request_id":"eef9e6f3-32fc-484c-ab5b-1a74914c6568","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8590379} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a07ff690-50d1-4dcf-9176-a96ea8a367e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.863533} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.664597323Z"}]},"request_id":"8d80a099-e805-4857-a517-b867a0b3ca11","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.8965127} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6d89ef709b458e278a28d9e5315f2a73"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d89ef709b458e278a28d9e5315f2a73"} device-1 | {"level":"info","message":"PATCH /devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a? 200 48ms","method":"PATCH","requestID":"6d89ef709b458e278a28d9e5315f2a73","responseTime":48,"status":200,"url":"/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"fa2a6f85232817dc8c68685efeddb96a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"fa2a6f85232817dc8c68685efeddb96a"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.727645,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fa2a6f85232817dc8c68685efeddb96a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.751930145Z"}]},"request_id":"07c8ddac-2f9b-4afb-842f-a4acdbdb4936","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.937898} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6a8dcadd-92c6-4fae-bc85-8face8674359","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.9434614} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.751930145Z"}]},"request_id":"45f1118d-bb5f-477a-9414-82ff7c31872c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969565.9925735} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"fa2a6f85232817dc8c68685efeddb96a"} device-1 | {"level":"info","message":"PATCH /devices/b4cd5ac7-008b-46bc-b088-f58118d4b864? 200 90ms","method":"PATCH","requestID":"fa2a6f85232817dc8c68685efeddb96a","responseTime":90,"status":200,"url":"/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b4cd5ac7-008b-46bc-b088-f58118d4b864? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa2a6f85232817dc8c68685efeddb96a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA","level":"info","message":"auth send jwt","requestID":"fe99247c7e511a9d5e41e35e90424879"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"fe99247c7e511a9d5e41e35e90424879"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.842544,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fe99247c7e511a9d5e41e35e90424879","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969565,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2NX0.Wtdy7AO_P3dkUvqc2sQal5af5uHkpzwvmXmlgF5rQKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.817221660Z"}]},"request_id":"fe4f3838-c69c-44d3-992c-47b6f559b0b7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.0101326} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"064a8cbd-bd50-49a4-a358-4efed6e3f06b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.0350094} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.817221660Z"}]},"request_id":"e011e7f5-ec4b-4a86-8b55-e85ad6954bcf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.0447385} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"fe99247c7e511a9d5e41e35e90424879"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/05df0f6d-9d26-404c-82d6-61deef94ca92? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fe99247c7e511a9d5e41e35e90424879"} device-1 | {"level":"info","message":"PATCH /devices/05df0f6d-9d26-404c-82d6-61deef94ca92? 200 49ms","method":"PATCH","requestID":"fe99247c7e511a9d5e41e35e90424879","responseTime":49,"status":200,"url":"/devices/05df0f6d-9d26-404c-82d6-61deef94ca92?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"e5296783bb4925f25e7e11c7bba182f4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e5296783bb4925f25e7e11c7bba182f4"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.758037,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e5296783bb4925f25e7e11c7bba182f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1e15f1d6-7bd8-4b5e-a214-730041e8220a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.664597323Z"}]},"request_id":"76daba85-f777-4867-8484-c26090553938","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.0844245} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.611176,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.561154,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/16fa1a26-8eeb-4e32-b392-c38a141c3315","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e5296783bb4925f25e7e11c7bba182f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/16fa1a26-8eeb-4e32-b392-c38a141c3315","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83f40487-a938-48eb-b086-696964243d0b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e5296783bb4925f25e7e11c7bba182f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83f40487-a938-48eb-b086-696964243d0b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.406772,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e5296783bb4925f25e7e11c7bba182f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.16485,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c24f49c5-f893-4e7e-af39-83cba69758e7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e5296783bb4925f25e7e11c7bba182f4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c24f49c5-f893-4e7e-af39-83cba69758e7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e5296783bb4925f25e7e11c7bba182f4"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5296783bb4925f25e7e11c7bba182f4"} device-1 | {"level":"info","message":"GET /devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a? 200 46ms","method":"GET","requestID":"e5296783bb4925f25e7e11c7bba182f4","responseTime":46,"status":200,"url":"/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"be12d7e9601a5fe8d47dde88283796a6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"be12d7e9601a5fe8d47dde88283796a6"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4cd5ac7-008b-46bc-b088-f58118d4b864","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.751930145Z"}]},"request_id":"32b14ec4-b798-49dd-8002-97d3f06b3959","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.1358757} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650113,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.483501,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.569676,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9ba98089-60a7-4954-b62e-16d0b5627d67","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/9ba98089-60a7-4954-b62e-16d0b5627d67","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/18dbaa64-fb4d-4d98-9aef-683cbf04858b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/18dbaa64-fb4d-4d98-9aef-683cbf04858b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a6f889ee-e2b4-4b2e-a367-dd1f0846f7d2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.657088,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.563879,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.794336,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4d87f04f-8abe-43dd-ad40-676066a9ba4e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"be12d7e9601a5fe8d47dde88283796a6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4d87f04f-8abe-43dd-ad40-676066a9ba4e","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 34ms","method":"POST","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":34,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"be12d7e9601a5fe8d47dde88283796a6"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4cd5ac7-008b-46bc-b088-f58118d4b864? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.077","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be12d7e9601a5fe8d47dde88283796a6"} device-1 | {"level":"info","message":"GET /devices/b4cd5ac7-008b-46bc-b088-f58118d4b864? 200 49ms","method":"GET","requestID":"be12d7e9601a5fe8d47dde88283796a6","responseTime":49,"status":200,"url":"/devices/b4cd5ac7-008b-46bc-b088-f58118d4b864?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"782aa0e5654c9a65ea3feea020459f6b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"782aa0e5654c9a65ea3feea020459f6b"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.692921,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"782aa0e5654c9a65ea3feea020459f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/05df0f6d-9d26-404c-82d6-61deef94ca92","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F05df0f6d-9d26-404c-82d6-61deef94ca92","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:05.817221660Z"}]},"request_id":"13acc912-e980-47ee-b3a5-dc59a95160ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.1910868} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57736","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.874898,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37676","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.868398,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.566281,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.641919,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a9ee539e-0d35-4063-b518-e0fdf30caa0f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"782aa0e5654c9a65ea3feea020459f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a9ee539e-0d35-4063-b518-e0fdf30caa0f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/afb50ee4-5fbb-4265-b21d-cd00b6ea9821","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"782aa0e5654c9a65ea3feea020459f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/afb50ee4-5fbb-4265-b21d-cd00b6ea9821","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86cc93ea-afbf-4d26-beaa-05102702f022","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"782aa0e5654c9a65ea3feea020459f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/86cc93ea-afbf-4d26-beaa-05102702f022","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"782aa0e5654c9a65ea3feea020459f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1e15f1d6-7bd8-4b5e-a214-730041e8220a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"782aa0e5654c9a65ea3feea020459f6b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/05df0f6d-9d26-404c-82d6-61deef94ca92? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"782aa0e5654c9a65ea3feea020459f6b"} device-1 | {"level":"info","message":"GET /devices/05df0f6d-9d26-404c-82d6-61deef94ca92? 200 51ms","method":"GET","requestID":"782aa0e5654c9a65ea3feea020459f6b","responseTime":51,"status":200,"url":"/devices/05df0f6d-9d26-404c-82d6-61deef94ca92?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.644737,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a30f8d7f-2da0-49ed-a03f-0e1f58aca2ff","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.2831554} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6875ef05-ad6f-41ef-a489-6e9bebdf40df","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.286987} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"e49add6b-5ec9-4ef5-b875-3c0660d74741","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.2965705} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b54e1aa0-c2e9-416c-8f6a-e5f79d9f6c2c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.32093} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.296557184Z"}]},"request_id":"ca74cc50-5b3b-41d0-87d8-41a773bd1bc4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.324857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"8c6bdbd49d4beac48e13aad2998fa9b7","responseTime":86,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"d5935fe20f79e86c07a3011fc3402d89"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"d5935fe20f79e86c07a3011fc3402d89"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.495016,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d5935fe20f79e86c07a3011fc3402d89","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"361ce4e7-233a-4025-9dc4-14bfe694bbac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.371128} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9180e427-d09a-4406-9417-d2043059b4e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.374742} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c02a59f2-77ae-4e3f-b356-53f61c74f83b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.3848433} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"452596d9-1fbc-4fb5-a6fe-46281bf90dd6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.3849514} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.384820013Z"}]},"request_id":"9478a0eb-be74-4a95-8f21-1380c1f55a36","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.3922732} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"d5935fe20f79e86c07a3011fc3402d89"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d5935fe20f79e86c07a3011fc3402d89"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"d5935fe20f79e86c07a3011fc3402d89","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI","level":"info","message":"auth send jwt","requestID":"c0ba021bad82aa8a868da0c9a1b9f042"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"c0ba021bad82aa8a868da0c9a1b9f042"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.729734,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c0ba021bad82aa8a868da0c9a1b9f042","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969566,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2Nn0.eWXmfmSMiINKH1mjc9nJKTleej91_Ut0qLAs7ELogvI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"91a60b67-8ee3-475a-99db-d0bb526be3ea","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.4749727} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb1daaed-1846-4cb5-b48c-7d076bbfd747","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.4791083} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"675f9ad9-df26-4c3e-b00d-2ce23bbadee1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.4894714} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a8c1176-e50b-4443-b3e6-a2115ae83b3e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.4897556} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.489452846Z"}]},"request_id":"25907429-efa4-49f3-8631-c5c428ee23b4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969566.492994} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c0ba021bad82aa8a868da0c9a1b9f042"} gateway-1 | {"time_local":"14/Mar/2025:16:26:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.074","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0ba021bad82aa8a868da0c9a1b9f042"} device-1 | {"level":"info","message":"POST /devices? 201 70ms","method":"POST","requestID":"c0ba021bad82aa8a868da0c9a1b9f042","responseTime":70,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"86d434c39ce2e6842b8e36d839db596c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"86d434c39ce2e6842b8e36d839db596c","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c3fefb2b-6c7b-4d07-9245-486258842712/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":"86d434c39ce2e6842b8e36d839db596c"} device-1 | {"level":"info","message":"OPTIONS /devices/c3fefb2b-6c7b-4d07-9245-486258842712/websocket 200 1ms","method":"OPTIONS","requestID":"86d434c39ce2e6842b8e36d839db596c","responseTime":1,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0","level":"info","message":"auth send jwt","requestID":"c0f80da2c7e45be62553c43b181a7d98"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c0f80da2c7e45be62553c43b181a7d98","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c0f80da2c7e45be62553c43b181a7d98"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.171706,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c0f80da2c7e45be62553c43b181a7d98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"c0f80da2c7e45be62553c43b181a7d98","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c0f80da2c7e45be62553c43b181a7d98"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/websocket 200 27ms","method":"POST","requestID":"c0f80da2c7e45be62553c43b181a7d98","responseTime":27,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c0f80da2c7e45be62553c43b181a7d98"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a71d34a0931f8f98eb56591701b5f303","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a71d34a0931f8f98eb56591701b5f303","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/39723f20-d34f-488d-86fb-f791a46df406/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":"a71d34a0931f8f98eb56591701b5f303"} device-1 | {"level":"info","message":"OPTIONS /devices/39723f20-d34f-488d-86fb-f791a46df406/websocket 200 1ms","method":"OPTIONS","requestID":"a71d34a0931f8f98eb56591701b5f303","responseTime":1,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0","level":"info","message":"auth send jwt","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.012462,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645"} gateway-1 | {"time_local":"14/Mar/2025:16:26:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.021","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/websocket 200 15ms","method":"POST","requestID":"8f7d3f3f0e71f2696f1c4ca1e01cb645","responseTime":15,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0","level":"info","message":"auth send jwt","requestID":"d3ff768c9815a73dc629a40eb3d232d2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d3ff768c9815a73dc629a40eb3d232d2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d3ff768c9815a73dc629a40eb3d232d2"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.121801,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d3ff768c9815a73dc629a40eb3d232d2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d3ff768c9815a73dc629a40eb3d232d2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.489452846Z"}]},"request_id":"570a9019-411a-4d08-9bee-0625274112b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969568.836197} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"d3ff768c9815a73dc629a40eb3d232d2","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d3ff768c9815a73dc629a40eb3d232d2"} gateway-1 | {"time_local":"14/Mar/2025:16:26:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3ff768c9815a73dc629a40eb3d232d2"} device-1 | {"level":"info","message":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? 200 13ms","method":"GET","requestID":"d3ff768c9815a73dc629a40eb3d232d2","responseTime":13,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0","level":"info","message":"auth send jwt","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0ba4c7567afaef866c1cfecf1e018f8b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.710061,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0ba4c7567afaef866c1cfecf1e018f8b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0ba4c7567afaef866c1cfecf1e018f8b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to run experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to book experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully booked experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.620297,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/214ebc37-05a9-4603-ab6d-dfbfc841fe0b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/214ebc37-05a9-4603-ab6d-dfbfc841fe0b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732051,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F214ebc37-05a9-4603-ab6d-dfbfc841fe0b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.384820013Z"}]},"request_id":"0c6e69d8-6a77-4c03-a86e-c476180960c6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969568.9478989} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.489452846Z"}]},"request_id":"657cbde6-081d-457d-8765-9c5f31b7c2f7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969568.9484806} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? 200 12ms","method":"GET","requestID":"092ae5d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712?"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704765,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/214ebc37-05a9-4603-ab6d-dfbfc841fe0b? 200 20ms","method":"GET","requestID":"092a2280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":20,"status":200,"url":"/devices/214ebc37-05a9-4603-ab6d-dfbfc841fe0b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Setting up experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully locked booking for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to update booking for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully updated booking for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully set up experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0935bb40-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully running experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.759326,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800599,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.067859,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"68446462-8856-45ce-931d-a022798829fe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0182743} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0935bb40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0935bb40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.296557184Z"}]},"request_id":"719bb54a-a67b-472b-8954-6634a5b6061d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0211587} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.489452846Z"}]},"request_id":"b397f977-5892-4f95-9622-bebd55dd0a54","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0235436} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Feadd9740-dee2-4745-bf02-7eb967bf84d7#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Feadd9740-dee2-4745-bf02-7eb967bf84d7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"09d26578-c175-493a-ac69-da0c5f9f5113","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0285325} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f16246b3-88b7-40e5-8e84-fd8f1da679d6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.028791} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0935bb40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"0ba4c7567afaef866c1cfecf1e018f8b","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/signaling 200 19ms","method":"POST","requestID":"0935bb40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":19,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/39723f20-d34f-488d-86fb-f791a46df406? 200 21ms","method":"GET","requestID":"09356d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":21,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? 200 21ms","method":"GET","requestID":"09359430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":21,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"09393db0-00f1-11f0-9a2b-c98a3cf1c544"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"0ba4c7567afaef866c1cfecf1e018f8b","responseTime":174,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0939b2e0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2653f34e-7bfb-4105-bd6c-950c32d13046","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0640259} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"040177da-42cc-4b10-847a-f121474ff086","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.0641294} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.974896,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.06076,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0939b2e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"0939b2e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09393db0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"09393db0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0939b2e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/signaling 200 35ms","method":"POST","requestID":"0939b2e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"f184008d02d1130e71927a80058b38ad"} authentication-1 | {"level":"info","message":"GET /auth 200 16ms","method":"GET","requestID":"f184008d02d1130e71927a80058b38ad","responseTime":16,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"09393db0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling 200 42ms","method":"POST","requestID":"09393db0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":42,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f184008d02d1130e71927a80058b38ad"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"09401b80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.022669,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f184008d02d1130e71927a80058b38ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"f184008d02d1130e71927a80058b38ad","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b3b9d68d-194a-48b1-8c4e-a4b0abd4e19b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.108527} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.758677,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09401b80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"09401b80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.296557184Z"}]},"request_id":"6261a285-addd-4d01-89c8-931078ae0789","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.1122012} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f184008d02d1130e71927a80058b38ad","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"09401b80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling 200 35ms","method":"POST","requestID":"09401b80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f184008d02d1130e71927a80058b38ad"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/39723f20-d34f-488d-86fb-f791a46df406? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f184008d02d1130e71927a80058b38ad"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Building connection plan","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} device-1 | {"level":"info","message":"GET /devices/39723f20-d34f-488d-86fb-f791a46df406? 200 39ms","method":"GET","requestID":"f184008d02d1130e71927a80058b38ad","responseTime":39,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406?"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"71c123ab-bca9-4217-bf46-e0dfc3a7b914"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"f5ddb0af-d7c9-4b1d-a35a-3f760c0dffb8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2a74b0bd-14a5-44ab-a809-d7c1a999eca4"}]},"level":"info","message":"Built pairwise service configurations","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"00a4b439103dc90d8a8777c6105c28bf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"00a4b439103dc90d8a8777c6105c28bf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"00a4b439103dc90d8a8777c6105c28bf"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.682157,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969568,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OH0.4Tv47ZuRLiVezNbmSmCldhkDv5o2j8wmHY3wwUAEer0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.775213,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"00a4b439103dc90d8a8777c6105c28bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"00a4b439103dc90d8a8777c6105c28bf","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:06.489452846Z"}]},"request_id":"4df1064d-3ae3-4589-8688-26d5b0cb26b0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.1531625} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"00a4b439103dc90d8a8777c6105c28bf","responseTime":28,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"f5448836-3deb-467e-a932-051967e8ef14","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.1545897} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"65710296-ecc3-4434-971a-3eed93724776","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.1548586} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"00a4b439103dc90d8a8777c6105c28bf"} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/relations/update"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"00a4b439103dc90d8a8777c6105c28bf"} device-1 | {"level":"info","message":"GET /devices/c3fefb2b-6c7b-4d07-9245-486258842712? 200 37ms","method":"GET","requestID":"00a4b439103dc90d8a8777c6105c28bf","responseTime":37,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70'","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70'","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 86ms","method":"POST","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":86,"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","requestID":"09460ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":true} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"0ba4c7567afaef866c1cfecf1e018f8b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"095aa860-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} device-1 | {"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ac4cb74-258d-4cd7-88ea-e441c421b2ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.2594974} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.639667,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"095aa860-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"095aa860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"095aa860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/signaling 200 11ms","method":"POST","requestID":"095aa860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"095ccb40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"92f7c6c9-81f7-49ae-9a8d-cf74d109c578","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.2723029} device-1 | {"content":{"sdp":"v=0\r\no=- 4993041805221278443 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:pgcg\r\na=ice-pwd:wQl21q3zHuQP3ppe3eVq4lq2\r\na=ice-options:trickle\r\na=fingerprint:sha-256 6E:50:9F:54:40:E3:63:0B:D6:81:0E:19:8A:67:C6:41:B7:35:11:60:A2:40:67:CA:E5:AF:ED:42:4D:87:8D:78\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.901022,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"095ccb40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"095ccb40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"095ccb40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling 200 37ms","method":"POST","requestID":"095ccb40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 1824874944004780635 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:1HI4\r\na=ice-pwd:iwbG9CZD+XmTLXF5pAAHurik\r\na=ice-options:trickle\r\na=fingerprint:sha-256 48:BF:85:9C:17:72:02:37:27:B8:EB:B7:87:C4:6F:CF:D9:C5:57:E1:A7:B3:43:25:C5:F1:21:DF:64:96:F4:CA\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3915407723 1 udp 2113937151 da91242d-49aa-45b3-b974-d962a0ddf425.local 49971 typ host generation 0 ufrag 1HI4 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"content":{"candidate":"candidate:3209606907 1 udp 2113937151 b12282be-ea07-4c0c-950c-8e616584807d.local 33958 typ host generation 0 ufrag pgcg network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"819c9976b44c6e343449dcf367bdaf81","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"819c9976b44c6e343449dcf367bdaf81","responseTime":25,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"}}},"level":"info","message":"received a callback","requestID":"819c9976b44c6e343449dcf367bdaf81"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"819c9976b44c6e343449dcf367bdaf81","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"819c9976b44c6e343449dcf367bdaf81"} device-1 | {"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0b7ea35f07bc7d14c0570e2c9d643b0c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0b7ea35f07bc7d14c0570e2c9d643b0c","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"}}},"level":"info","message":"received a callback","requestID":"0b7ea35f07bc7d14c0570e2c9d643b0c"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"09724f10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65f4d7ad-3f51-4627-bec5-e042a6109d06","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.4137805} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.228343,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09724f10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"09724f10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"09724f10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70 200 32ms","method":"GET","requestID":"09724f10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"2c28baa787c8128871831cf3bc29c8ee"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2c28baa787c8128871831cf3bc29c8ee","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","requestID":"2c28baa787c8128871831cf3bc29c8ee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"0b7ea35f07bc7d14c0570e2c9d643b0c","responseTime":51,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.054","http_referrer":"","http_user_agent":"node-fetch","requestID":"0b7ea35f07bc7d14c0570e2c9d643b0c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0979a210-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.999236,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2c28baa787c8128871831cf3bc29c8ee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2c28baa787c8128871831cf3bc29c8ee","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"494ae485-72ac-450c-8790-8f752e4ab5dc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.4619346} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.469879,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0979a210-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","requestID":"2c28baa787c8128871831cf3bc29c8ee"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0979a210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2c28baa787c8128871831cf3bc29c8ee"} experiment-1 | {"level":"info","message":"GET /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7 200 11ms","method":"GET","requestID":"2c28baa787c8128871831cf3bc29c8ee","responseTime":11,"status":200,"url":"/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0979a210-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/signaling 200 33ms","method":"POST","requestID":"0979a210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"19de54d39aa192de819e2c7fe83946d2"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"19de54d39aa192de819e2c7fe83946d2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"097f2050-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","requestID":"19de54d39aa192de819e2c7fe83946d2"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.794109,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19de54d39aa192de819e2c7fe83946d2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"19de54d39aa192de819e2c7fe83946d2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"37d1f170-b28d-4476-b68e-0d5d23f5088b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.4974885} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.407697,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"097f2050-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"097f2050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"097f2050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling 200 9ms","method":"POST","requestID":"097f2050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Attempting to finish experiment","requestID":"19de54d39aa192de819e2c7fe83946d2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.162304,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","device":"39723f20-d34f-488d-86fb-f791a46df406","deviceName":"Internal Test Device","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","device":"c3fefb2b-6c7b-4d07-9245-486258842712","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f659b9970027161bba22abbb025ba6b4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f659b9970027161bba22abbb025ba6b4","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4449f8630a41c953071b8a2ac95c5fb8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4449f8630a41c953071b8a2ac95c5fb8","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"}}},"level":"info","message":"received a callback","requestID":"f659b9970027161bba22abbb025ba6b4"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"1d80d489-2384-4b12-9824-bef70f47693a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.5432608} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"}}},"level":"info","message":"received a callback","requestID":"4449f8630a41c953071b8a2ac95c5fb8"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e838f41-1b61-4394-8791-26f192f08aaf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.5436127} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","method":"POST","requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70 204 86ms","method":"DELETE","requestID":"0980ce00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":86,"status":204,"url":"/peerconnections/2b3a32d3-66b7-4d04-98e4-8e52dc4a3e70"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"},"level":"info","message":"Successfully finished experiment","requestID":"19de54d39aa192de819e2c7fe83946d2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"09905e60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F39723f20-d34f-488d-86fb-f791a46df406","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c10f087-3138-4e9c-bd53-e711a50ffcd7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.6114604} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.583933,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09905e60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"09905e60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"09905e60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/39723f20-d34f-488d-86fb-f791a46df406/signaling 200 30ms","method":"POST","requestID":"09905e60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/devices/39723f20-d34f-488d-86fb-f791a46df406/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"09954060-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3fefb2b-6c7b-4d07-9245-486258842712","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31767d23-2783-4be5-b2b2-b686a4a7aa8d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.6424644} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Feadd9740-dee2-4745-bf02-7eb967bf84d7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Feadd9740-dee2-4745-bf02-7eb967bf84d7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"7de93043-f2ae-477a-9448-ed4ba22ba144","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.6425288} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"303cf2b5-500d-4da4-9637-6f3e41aa6a68","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.6428661} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.402271,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"09954060-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"09954060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"19de54d39aa192de819e2c7fe83946d2","responseTime":40,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"09954060-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling 200 9ms","method":"POST","requestID":"09954060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c3fefb2b-6c7b-4d07-9245-486258842712/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7","requestID":"19de54d39aa192de819e2c7fe83946d2"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.228","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"19de54d39aa192de819e2c7fe83946d2"} experiment-1 | {"level":"info","message":"DELETE /experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7 204 224ms","method":"DELETE","requestID":"19de54d39aa192de819e2c7fe83946d2","responseTime":224,"status":204,"url":"/experiments/eadd9740-dee2-4745-bf02-7eb967bf84d7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 179ms","method":"POST","requestID":"f659b9970027161bba22abbb025ba6b4","responseTime":179,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"f659b9970027161bba22abbb025ba6b4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 178ms","method":"POST","requestID":"4449f8630a41c953071b8a2ac95c5fb8","responseTime":178,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.184","http_referrer":"","http_user_agent":"node-fetch","requestID":"4449f8630a41c953071b8a2ac95c5fb8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"3e4bd2d95309945c29f67b7a3d07fecf"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"3e4bd2d95309945c29f67b7a3d07fecf"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"0.948","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b43c80674e2f96cd9111281582fa4216"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"1.017","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"da23566f7171e02480544afa1406654d"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.018481,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e4bd2d95309945c29f67b7a3d07fecf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/39723f20-d34f-488d-86fb-f791a46df406' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c3fefb2b-6c7b-4d07-9245-486258842712' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"eebe002f-8e1d-471d-a6db-dd1f3263881a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.7483664} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"680dcda7-f142-4e1f-8fdb-652e3b0a2071","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.7537768} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"dd2e33a8-1c4b-40e0-9df4-c91807994230","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.763035} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7cbcad8-0266-40f0-a93c-b1aa4b127ca5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.763199} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"bf2877a4-73bf-4262-a990-7078363f898d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.767019} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3e4bd2d95309945c29f67b7a3d07fecf"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3e4bd2d95309945c29f67b7a3d07fecf"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"3e4bd2d95309945c29f67b7a3d07fecf","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic","level":"info","message":"auth send jwt","requestID":"cb5f35604896916ed2b728495d5e03d5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"cb5f35604896916ed2b728495d5e03d5"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.693639,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cb5f35604896916ed2b728495d5e03d5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969569,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU2OX0.sw75l_zf3p7PB8bT8091Mv7nIQOPaiEgeBj1qj70Hic"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"db5bf245-ced3-4032-a1c6-ce799620ebfa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.788292} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c488d46e-38bf-4da7-b8a1-4e31051a1bda","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.7918284} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"1ef31e2a-283b-4aa9-8715-38a4c1ad902b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.803466} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"77410f81-40aa-4298-8c6d-72a285b17c58","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.8037002} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":18,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.803451863Z"}]},"request_id":"def42d93-3db4-42af-a126-2a55b82e77d1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969569.8113887} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":3,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"14/Mar/2025:16:26:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cb5f35604896916ed2b728495d5e03d5"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"cb5f35604896916ed2b728495d5e03d5"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"cb5f35604896916ed2b728495d5e03d5","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3MH0.tT3xg_TmZTxwrhPsHqdNcPYSRMNg2m3nM6iOOD1vfhQ","level":"info","message":"auth send jwt","requestID":"6981d6302d25099ecc164ddb3587cb71"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6981d6302d25099ecc164ddb3587cb71"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.966828,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6981d6302d25099ecc164ddb3587cb71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969570,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3MH0.tT3xg_TmZTxwrhPsHqdNcPYSRMNg2m3nM6iOOD1vfhQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"624678b5-0daf-4069-af5d-1e41033a0bc5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969570.6924443} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68eb726f-dd98-4b57-a836-07be480ea345","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969570.697344} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"f9477998-914f-4ce4-9f32-f9df23d58ac0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969570.709815} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6981d6302d25099ecc164ddb3587cb71"} device-1 | {"level":"info","message":"PATCH /devices/83b73348-0392-461b-bef2-3bfeb66bc66f 200 52ms","method":"PATCH","requestID":"6981d6302d25099ecc164ddb3587cb71","responseTime":52,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/83b73348-0392-461b-bef2-3bfeb66bc66f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"6981d6302d25099ecc164ddb3587cb71"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3MH0.tT3xg_TmZTxwrhPsHqdNcPYSRMNg2m3nM6iOOD1vfhQ","level":"info","message":"auth send jwt","requestID":"8f07530be222dadd385ff1549eed3dda"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8f07530be222dadd385ff1549eed3dda","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8f07530be222dadd385ff1549eed3dda"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:10Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.632067,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:10Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8f07530be222dadd385ff1549eed3dda","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969570,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3MH0.tT3xg_TmZTxwrhPsHqdNcPYSRMNg2m3nM6iOOD1vfhQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8f07530be222dadd385ff1549eed3dda","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8f07530be222dadd385ff1549eed3dda"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/websocket 200 39ms","method":"POST","requestID":"8f07530be222dadd385ff1549eed3dda","responseTime":39,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"8f07530be222dadd385ff1549eed3dda"} device-1 | {"level":"info","message":"device 'http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f4d6e5ce8633fc7f9f39cd04fdeaca53","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f4d6e5ce8633fc7f9f39cd04fdeaca53","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/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":"f4d6e5ce8633fc7f9f39cd04fdeaca53"} device-1 | {"level":"info","message":"OPTIONS /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/websocket 200 1ms","method":"OPTIONS","requestID":"f4d6e5ce8633fc7f9f39cd04fdeaca53","responseTime":1,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"4331c1c6e8750a608501947be5c06d1f"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4331c1c6e8750a608501947be5c06d1f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"4331c1c6e8750a608501947be5c06d1f"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904257,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4331c1c6e8750a608501947be5c06d1f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4331c1c6e8750a608501947be5c06d1f","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"4331c1c6e8750a608501947be5c06d1f"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/websocket 200 30ms","method":"POST","requestID":"4331c1c6e8750a608501947be5c06d1f","responseTime":30,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.036","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"4331c1c6e8750a608501947be5c06d1f"} device-1 | {"level":"info","message":"device 'http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"05c97fbae63bc702ce6fe192b8084cab"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"05c97fbae63bc702ce6fe192b8084cab","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"05c97fbae63bc702ce6fe192b8084cab"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715106,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"05c97fbae63bc702ce6fe192b8084cab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"05c97fbae63bc702ce6fe192b8084cab","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"4326497b-04d8-4186-b90b-025385a697c2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.1516619} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"05c97fbae63bc702ce6fe192b8084cab","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"05c97fbae63bc702ce6fe192b8084cab"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"05c97fbae63bc702ce6fe192b8084cab"} device-1 | {"level":"info","message":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? 200 36ms","method":"GET","requestID":"05c97fbae63bc702ce6fe192b8084cab","responseTime":36,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"84e5acc24f75021aaf46edf16ec57840"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"84e5acc24f75021aaf46edf16ec57840","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"84e5acc24f75021aaf46edf16ec57840"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.891193,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"84e5acc24f75021aaf46edf16ec57840","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84e5acc24f75021aaf46edf16ec57840","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.803451863Z"}]},"request_id":"d72131ab-a55b-47ab-a9f5-5a0ee1fc48e7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.193004} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"84e5acc24f75021aaf46edf16ec57840","responseTime":3,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84e5acc24f75021aaf46edf16ec57840"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"84e5acc24f75021aaf46edf16ec57840"} device-1 | {"level":"info","message":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? 200 11ms","method":"GET","requestID":"84e5acc24f75021aaf46edf16ec57840","responseTime":11,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"a21cc43359c91ff491f81757983e957f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a21cc43359c91ff491f81757983e957f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a21cc43359c91ff491f81757983e957f"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.777372,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a21cc43359c91ff491f81757983e957f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a21cc43359c91ff491f81757983e957f","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to run experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to book experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully booked experiment","requestID":"a21cc43359c91ff491f81757983e957f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.110284,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.015536,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"973c0006-4920-4e3b-b3e1-86938f88503f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.287181} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.803451863Z"}]},"request_id":"1a9b00ec-8965-41bc-99a1-b761087ec912","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.2879694} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? 200 14ms","method":"GET","requestID":"0b281560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? 200 12ms","method":"GET","requestID":"0b286380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Setting up experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to update booking for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully updated booking for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully set up experiment","requestID":"a21cc43359c91ff491f81757983e957f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b384200-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully running experiment","requestID":"a21cc43359c91ff491f81757983e957f"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.703007,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.735787,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"583115fb-7af8-4243-86b9-de425eccfffc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.3894854} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.545527,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b384200-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0b384200-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.803451863Z"}]},"request_id":"945c15b2-33ed-4aeb-ae72-1cffeb388bd7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.3910794} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"1cb1c927-0899-4716-a721-cb2a0881fe4a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.39368} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b384200-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling 200 12ms","method":"POST","requestID":"0b384200-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b3e0e60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? 200 43ms","method":"GET","requestID":"0b37f3e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4fb7095-0bab-4410-a53f-fff28f513d6f#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4fb7095-0bab-4410-a53f-fff28f513d6f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"59fcca50-b32b-471f-be64-0f2b4fcb917f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.4237525} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? 200 46ms","method":"GET","requestID":"0b37a5c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"41c702b8-6f1e-4b45-ae46-e2d371ac9363","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.4248939} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b3ed1b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"a21cc43359c91ff491f81757983e957f","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c877077b-ce7f-4b7b-8f28-22ac11b268c1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.4285722} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.921574,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b3e0e60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0b3e0e60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6014391c-e6a6-4f4b-8d28-53f337cd117f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.4320793} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.84823,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b3ed1b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b3e0e60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling 200 12ms","method":"POST","requestID":"0b3e0e60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0b3ed1b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a21cc43359c91ff491f81757983e957f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 232ms","method":"POST","requestID":"a21cc43359c91ff491f81757983e957f","responseTime":232,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b3ed1b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling 200 10ms","method":"POST","requestID":"0b3ed1b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"d609a32e0186a385b66163ec73a3d529"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b40a670-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d609a32e0186a385b66163ec73a3d529","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d609a32e0186a385b66163ec73a3d529"} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4f39901e-c3c4-486e-9480-32cfcd6fddd3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.470364} authorization-1 | {"client_addr":"127.0.0.1:57734","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.489546,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.707104,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b40a670-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"0b40a670-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d609a32e0186a385b66163ec73a3d529","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d609a32e0186a385b66163ec73a3d529","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b40a670-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling 200 36ms","method":"POST","requestID":"0b40a670-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.763020566Z"}]},"request_id":"4d73228f-27b2-434f-bcb2-f083ebdf1b9d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.4757295} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Building connection plan","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"cd62b62c-5417-487d-be88-4dcbe5e29e13"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"79d9802d-22df-4a9e-9d0a-d4d5314320f9"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"b305fd42-394c-4b96-b985-5997a4a099d7"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a21cc43359c91ff491f81757983e957f"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a21cc43359c91ff491f81757983e957f"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d609a32e0186a385b66163ec73a3d529","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d609a32e0186a385b66163ec73a3d529"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d609a32e0186a385b66163ec73a3d529"} device-1 | {"level":"info","message":"GET /devices/83b73348-0392-461b-bef2-3bfeb66bc66f? 200 40ms","method":"GET","requestID":"d609a32e0186a385b66163ec73a3d529","responseTime":40,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f?"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.355501,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74","level":"info","message":"auth send jwt","requestID":"537bd5c8142b2372173e051eeb1d5ac0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"537bd5c8142b2372173e051eeb1d5ac0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"537bd5c8142b2372173e051eeb1d5ac0"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.383622,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"537bd5c8142b2372173e051eeb1d5ac0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969572,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3Mn0.9wwPdH4RnayDbDqy95Td_IWYWFmuaj2bnrRIuBGhO74"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"537bd5c8142b2372173e051eeb1d5ac0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ca2d93d1-b3a3-4a1b-8026-c4f9ab427118","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.513171} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aff96068-b039-4b95-9bb9-d2de9b13dfdf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.5138314} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:09.803451863Z"}]},"request_id":"0939c005-4ed9-4557-98d2-b1dadb5be5d2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.51803} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"537bd5c8142b2372173e051eeb1d5ac0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"537bd5c8142b2372173e051eeb1d5ac0"} device-1 | {"level":"info","message":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? 200 36ms","method":"GET","requestID":"537bd5c8142b2372173e051eeb1d5ac0","responseTime":36,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/96e7bba1-7697-4cbf-9520-b478f09c8227? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"537bd5c8142b2372173e051eeb1d5ac0"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9'","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9'","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 88ms","method":"POST","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":88,"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","requestID":"0b4699e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":true} device-1 | {"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a21cc43359c91ff491f81757983e957f"} device-1 | {"content":{"canTrickle":true},"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b5d0810-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"content":{"sdp":"v=0\r\no=- 2918958745863666174 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:oZPB\r\na=ice-pwd:hC0kwrmKOiZr6aSbWicYA92S\r\na=ice-options:trickle\r\na=fingerprint:sha-256 7B:FE:4A:72:EE:22:08:44:3F:DE:20:FB:63:A3:9B:A2:42:B9:3D:73:6E:09:20:04:A0:29:77:B8:C6:B3:E1:A8\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227'"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"20314829-07ca-4908-a016-e5781b594ebe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.6303368} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.710906,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b5d0810-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0b5d0810-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b5d0810-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling 200 33ms","method":"POST","requestID":"0b5d0810-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0b625f40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc6774c4-584d-491f-9a84-624831bbc875","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969572.6636086} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.218833,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b625f40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0b625f40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0b625f40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling 200 8ms","method":"POST","requestID":"0b625f40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling"} device-1 | {"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8f2b6849fb2462d00914c33e6f636423","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"8f2b6849fb2462d00914c33e6f636423","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/83b73348-0392-461b-bef2-3bfeb66bc66f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"}}},"level":"info","message":"received a callback","requestID":"8f2b6849fb2462d00914c33e6f636423"} device-1 | {"content":{"candidate":"candidate:3611908765 1 udp 2113937151 4b1e3b5b-940b-4001-9239-54b39bdefcaf.local 53988 typ host generation 0 ufrag oZPB network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"8f2b6849fb2462d00914c33e6f636423","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"8f2b6849fb2462d00914c33e6f636423"} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"997f12604a04b73101018162b9befd37","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"997f12604a04b73101018162b9befd37","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/83b73348-0392-461b-bef2-3bfeb66bc66f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"}}},"level":"info","message":"received a callback","requestID":"997f12604a04b73101018162b9befd37"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"0c91b780-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a163dcc-31ad-44f2-8629-b8672f9e90b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d8f7c0d-ee7c-479b-b0ec-a1be31046358","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.6520238} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.167114,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c91b780-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0c91b780-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"0c91b780-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9 200 8ms","method":"GET","requestID":"0c91b780-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"997f12604a04b73101018162b9befd37","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"997f12604a04b73101018162b9befd37"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0c9539f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c51c36a-38c9-443e-9b49-9112a7c74d31","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.675532} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.220943,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c9539f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0c9539f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0c9539f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling 200 8ms","method":"POST","requestID":"0c9539f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0c96e7a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f54a0565-cd56-451d-88a0-6999bbea124b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.6858084} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.182249,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c96e7a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0c96e7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0c96e7a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling 200 7ms","method":"POST","requestID":"0c96e7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA","level":"info","message":"auth send jwt","requestID":"dcf6d3acb9700c6e4bd002f96e238071"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"dcf6d3acb9700c6e4bd002f96e238071","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","requestID":"dcf6d3acb9700c6e4bd002f96e238071"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.662449,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dcf6d3acb9700c6e4bd002f96e238071","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969574,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"dcf6d3acb9700c6e4bd002f96e238071","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","requestID":"dcf6d3acb9700c6e4bd002f96e238071"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dcf6d3acb9700c6e4bd002f96e238071"} experiment-1 | {"level":"info","message":"GET /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f 200 12ms","method":"GET","requestID":"dcf6d3acb9700c6e4bd002f96e238071","responseTime":12,"status":200,"url":"/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA","level":"info","message":"auth send jwt","requestID":"e3f3420edf741611111550faf86cabd4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e3f3420edf741611111550faf86cabd4","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","requestID":"e3f3420edf741611111550faf86cabd4"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.646325,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e3f3420edf741611111550faf86cabd4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969574,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e3f3420edf741611111550faf86cabd4","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Attempting to finish experiment","requestID":"e3f3420edf741611111550faf86cabd4"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.41846,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969574,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9","device":"96e7bba1-7697-4cbf-9520-b478f09c8227","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"83b73348-0392-461b-bef2-3bfeb66bc66f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4a163dcc-31ad-44f2-8629-b8672f9e90b9","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a163dcc-31ad-44f2-8629-b8672f9e90b9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4a163dcc-31ad-44f2-8629-b8672f9e90b9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"6fcc0daf-707a-4711-9a93-f37f38ed6f05","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.844949} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b59ac86-7a86-4dff-8a50-a691530d71ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.8451316} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5d3f4ffa0e0a415942b65f3ac817a4fe","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5d3f4ffa0e0a415942b65f3ac817a4fe","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"}}},"level":"info","message":"received a callback","requestID":"5d3f4ffa0e0a415942b65f3ac817a4fe"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c62c88b8b7fafe98b75dd9f0c11e4ca3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c62c88b8b7fafe98b75dd9f0c11e4ca3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"}}},"level":"info","message":"received a callback","requestID":"c62c88b8b7fafe98b75dd9f0c11e4ca3"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9 204 35ms","method":"DELETE","requestID":"0cad2ec0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":204,"url":"/peerconnections/4a163dcc-31ad-44f2-8629-b8672f9e90b9"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"},"level":"info","message":"Successfully finished experiment","requestID":"e3f3420edf741611111550faf86cabd4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0cb51e00-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F83b73348-0392-461b-bef2-3bfeb66bc66f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"afa16be6-d514-47d6-9656-9fd2de56dc24","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.8840375} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.309592,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0cb51e00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0cb51e00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0cb51e00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling 200 8ms","method":"POST","requestID":"0cb51e00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/83b73348-0392-461b-bef2-3bfeb66bc66f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0cb67d90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4fb7095-0bab-4410-a53f-fff28f513d6f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb4fb7095-0bab-4410-a53f-fff28f513d6f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"3ebf6f00-11ca-44ee-8ad0-37c2a946d77c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.8923523} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6001fec6-bfcc-4931-a6f0-fee219c7ca0d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.8925571} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"e3f3420edf741611111550faf86cabd4","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F96e7bba1-7697-4cbf-9520-b478f09c8227","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9d57ceff-5391-49f1-afda-5522a822590d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969574.894572} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.265196,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0cb67d90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0cb67d90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0cb67d90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling 200 9ms","method":"POST","requestID":"0cb67d90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/96e7bba1-7697-4cbf-9520-b478f09c8227/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f","requestID":"e3f3420edf741611111550faf86cabd4"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.154","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3f3420edf741611111550faf86cabd4"} experiment-1 | {"level":"info","message":"DELETE /experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f 204 150ms","method":"DELETE","requestID":"e3f3420edf741611111550faf86cabd4","responseTime":150,"status":204,"url":"/experiments/b4fb7095-0bab-4410-a53f-fff28f513d6f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"4.213","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"89f978e009cc21d635b58ec34d479529"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 123ms","method":"POST","requestID":"5d3f4ffa0e0a415942b65f3ac817a4fe","responseTime":123,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"5d3f4ffa0e0a415942b65f3ac817a4fe"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 123ms","method":"POST","requestID":"c62c88b8b7fafe98b75dd9f0c11e4ca3","responseTime":123,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.126","http_referrer":"","http_user_agent":"node-fetch","requestID":"c62c88b8b7fafe98b75dd9f0c11e4ca3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA","level":"info","message":"auth send jwt","requestID":"de5a2da97a7465f689e8bf6ffa6146d0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"de5a2da97a7465f689e8bf6ffa6146d0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2157","request_time":"2.854","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"890c3e12e8d2b674cb4d03eb7cb5bf09"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.950918,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"de5a2da97a7465f689e8bf6ffa6146d0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969574,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NH0.wtYoBZFn7P_NFZEwKgx-zMMNORzr6BQfWCZhB1A_8vA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/83b73348-0392-461b-bef2-3bfeb66bc66f' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5cdb77ee-24e8-4da5-a870-c83a9676f795","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.017353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ceba4df0-0674-4830-8542-35e9110b8105","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.0217252} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/96e7bba1-7697-4cbf-9520-b478f09c8227' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"67da507a-0622-4824-9be1-d55f4423d67a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.0327363} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e4793771-f031-46b2-96f5-a73810e3f4be","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.057113} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.032718960Z"}]},"request_id":"ecdc2eae-9bae-4048-b60b-60e0c09ed9e9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.0614948} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"de5a2da97a7465f689e8bf6ffa6146d0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"de5a2da97a7465f689e8bf6ffa6146d0"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"de5a2da97a7465f689e8bf6ffa6146d0","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NX0.4qTU5vSBfLI0HlGyuCAzIrR307dEP8M7Lkz-yoVl1F8","level":"info","message":"auth send jwt","requestID":"96f481776eed5ba87ad5c58de6bac418"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"96f481776eed5ba87ad5c58de6bac418"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:15Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.745755,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"96f481776eed5ba87ad5c58de6bac418","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969575,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3NX0.4qTU5vSBfLI0HlGyuCAzIrR307dEP8M7Lkz-yoVl1F8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2e408ed7-5285-4167-94b2-86fd08777e76","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.1074224} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4573e830-8021-45cf-b05e-33fa9838342f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.1120553} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"8815fe95-fb2d-439a-b6d3-118b69eebb56","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.1205053} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6ca08d13-4b34-4747-8f42-4d795fd65909","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.120643} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.120484901Z"}]},"request_id":"2b3dee34-4bf5-4ed5-a469-a02606532798","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969575.1267328} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"96f481776eed5ba87ad5c58de6bac418"} device-1 | {"level":"info","message":"POST /devices? 201 85ms","method":"POST","requestID":"96f481776eed5ba87ad5c58de6bac418","responseTime":85,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.089","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"96f481776eed5ba87ad5c58de6bac418"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3120d0f1dec94eaf4c4b6c60c71bf61a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3120d0f1dec94eaf4c4b6c60c71bf61a","responseTime":0,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/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":"3120d0f1dec94eaf4c4b6c60c71bf61a"} device-1 | {"level":"info","message":"OPTIONS /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/websocket 200 1ms","method":"OPTIONS","requestID":"3120d0f1dec94eaf4c4b6c60c71bf61a","responseTime":1,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b17d0f9310953456131895334086202a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b17d0f9310953456131895334086202a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/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":"b17d0f9310953456131895334086202a"} device-1 | {"level":"info","message":"OPTIONS /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/websocket 200 1ms","method":"OPTIONS","requestID":"b17d0f9310953456131895334086202a","responseTime":1,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"f640f519a21a88b5431122340f52b639"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f640f519a21a88b5431122340f52b639","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f640f519a21a88b5431122340f52b639"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"033ec75e84a9c5216f086d1ec6c35fb1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"033ec75e84a9c5216f086d1ec6c35fb1","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.060192,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"033ec75e84a9c5216f086d1ec6c35fb1"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f640f519a21a88b5431122340f52b639","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f640f519a21a88b5431122340f52b639","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.559389,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"033ec75e84a9c5216f086d1ec6c35fb1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"033ec75e84a9c5216f086d1ec6c35fb1","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f640f519a21a88b5431122340f52b639"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.044","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f640f519a21a88b5431122340f52b639"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/websocket 200 39ms","method":"POST","requestID":"f640f519a21a88b5431122340f52b639","responseTime":39,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"033ec75e84a9c5216f086d1ec6c35fb1"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.051","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"033ec75e84a9c5216f086d1ec6c35fb1"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/websocket 200 47ms","method":"POST","requestID":"033ec75e84a9c5216f086d1ec6c35fb1","responseTime":47,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.706888,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.032718960Z"}]},"request_id":"d3c65222-5836-4bfb-8b54-4177b2e4a0ac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.3824463} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0"} device-1 | {"level":"info","message":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? 200 9ms","method":"GET","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0","responseTime":9,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1fb652bdef6fd4a4e8dc4d964b7a88d0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"30445a49aaaa503a22efeaeb9dc6d417"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"30445a49aaaa503a22efeaeb9dc6d417","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30445a49aaaa503a22efeaeb9dc6d417"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.744119,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30445a49aaaa503a22efeaeb9dc6d417","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"30445a49aaaa503a22efeaeb9dc6d417","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.120484901Z"}]},"request_id":"46c52de3-319f-45c9-9602-b274852ad62b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.403104} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"30445a49aaaa503a22efeaeb9dc6d417","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30445a49aaaa503a22efeaeb9dc6d417"} device-1 | {"level":"info","message":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? 200 11ms","method":"GET","requestID":"30445a49aaaa503a22efeaeb9dc6d417","responseTime":11,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"090300e631492e417f0ff965cc66c9a8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"090300e631492e417f0ff965cc66c9a8","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"30445a49aaaa503a22efeaeb9dc6d417"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"090300e631492e417f0ff965cc66c9a8"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.679594,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"090300e631492e417f0ff965cc66c9a8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"090300e631492e417f0ff965cc66c9a8","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to run experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to book experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully booked experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650532,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.315888,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.032718960Z"}]},"request_id":"47548cdd-c804-46bd-8828-c5c14e618387","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.4776874} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.120484901Z"}]},"request_id":"76d2e8f8-984e-4568-8262-a1d3749c726d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.505317} device-1 | {"level":"info","message":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? 200 36ms","method":"GET","requestID":"0e402ad0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? 200 37ms","method":"GET","requestID":"0e4078f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Setting up experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully locked booking for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to update booking for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully updated booking for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully set up experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e4f4600-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.707336,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully running experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.658651,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca69691f-2f05-4670-9d7d-f3f9d63277ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.573515} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.674671,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e4f4600-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0e4f4600-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.120484901Z"}]},"request_id":"b8027f56-15c8-48ee-9546-74ccd7428f1e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.5757587} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.032718960Z"}]},"request_id":"56cbaf46-6ce8-4e05-a63f-c6d117199e26","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.5764544} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F791c317b-20d3-4102-ab27-c9df6bf9e235#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F791c317b-20d3-4102-ab27-c9df6bf9e235","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"cc13c3fa-7d6e-45c7-97f9-95145aa9d5ec","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.5802252} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6de661d-ffb9-4a82-b826-c6b42d4fb0b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.580574} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"090300e631492e417f0ff965cc66c9a8","responseTime":34,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e4f4600-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling 200 40ms","method":"POST","requestID":"0e4f4600-00f1-11f0-9a2b-c98a3cf1c544","responseTime":40,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? 200 43ms","method":"GET","requestID":"0e4ef7e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? 200 44ms","method":"GET","requestID":"0e4ed0d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":44,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e55d5b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e5671f0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"090300e631492e417f0ff965cc66c9a8"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26174ee7-6565-4882-a196-ae8455615601","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.616169} experiment-1 | {"level":"info","message":"POST /experiments? 201 203ms","method":"POST","requestID":"090300e631492e417f0ff965cc66c9a8","responseTime":203,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.209","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"090300e631492e417f0ff965cc66c9a8"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.292804,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e55d5b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0e55d5b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"db9f9357-924f-4e51-bd09-147401646977","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.6202784} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.041974,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e5671f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0e5671f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e55d5b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling 200 11ms","method":"POST","requestID":"0e55d5b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.822093,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e5671f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling 200 36ms","method":"POST","requestID":"0e5671f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"009fbf58b6aaed11fbb798ae27aa2c3c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e5c3e50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.032718960Z"}]},"request_id":"6f72f2eb-8093-43a0-a5e6-fa7d0e531885","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.6550982} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ddb4c24c-ca5b-4fe5-9edc-da99955e81f7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.6583304} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.135246,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e5c3e50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c"} device-1 | {"level":"info","message":"GET /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0? 200 37ms","method":"GET","requestID":"009fbf58b6aaed11fbb798ae27aa2c3c","responseTime":37,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0?"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0e5c3e50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e5c3e50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling 200 9ms","method":"POST","requestID":"0e5c3e50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Building connection plan","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"5bace759-9cdc-43d8-8e25-4ea05fef1e2c"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"9e4c98e8-9d4e-43a7-9211-daaf3db0212f"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"97824dbc-d070-4d48-bc4d-542dd159f897"}]},"level":"info","message":"Built pairwise service configurations","requestID":"090300e631492e417f0ff965cc66c9a8"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"090300e631492e417f0ff965cc66c9a8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig","level":"info","message":"auth send jwt","requestID":"aa401acbecad35ead8baaa8b86accfb6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"aa401acbecad35ead8baaa8b86accfb6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"aa401acbecad35ead8baaa8b86accfb6"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669993,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"aa401acbecad35ead8baaa8b86accfb6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"aa401acbecad35ead8baaa8b86accfb6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.601012,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969577,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3N30.R8hMp98yAuz-fv5jp3x882b7F9BrDLu2A1GrGSh-0Ig"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:15.120484901Z"}]},"request_id":"0c2e5e2f-23cc-4fbf-9255-eafff47bf8a1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.6976068} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"aa401acbecad35ead8baaa8b86accfb6","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"aa401acbecad35ead8baaa8b86accfb6"} gateway-1 | {"time_local":"14/Mar/2025:16:26:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aa401acbecad35ead8baaa8b86accfb6"} device-1 | {"level":"info","message":"GET /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7? 200 36ms","method":"GET","requestID":"aa401acbecad35ead8baaa8b86accfb6","responseTime":36,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6d40291f-7e3f-4721-a3b3-1629cf347e01","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.7031064} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"528a8f8e-ba6e-48c7-8ad8-834b307e5129","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.703315} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251'","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251'","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 90ms","method":"POST","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":90,"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","requestID":"0e5e6130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}],"tiebreaker":true} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"090300e631492e417f0ff965cc66c9a8"} device-1 | {"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e73bdf0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} device-1 | {"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e3e5b970-8981-4578-8b88-296b678993c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.8118625} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.789387,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e73bdf0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0e73bdf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 6044222813841820152 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:tEHI\r\na=ice-pwd:OwZLDRnpIRWiOTXvSZMi4hWT\r\na=ice-options:trickle\r\na=fingerprint:sha-256 F3:1C:6C:A5:11:3D:DD:63:10:3B:8D:43:B4:48:E9:91:BB:F2:D2:05:19:AF:6B:EF:9E:49:4B:9E:43:E1:26:A2\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e73bdf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling 200 11ms","method":"POST","requestID":"0e73bdf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e7592b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e29661f6-1720-474e-b040-6929d2f06775","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.8243096} device-1 | {"content":{"sdp":"v=0\r\no=- 7571181977173942456 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:8CLx\r\na=ice-pwd:J6zOdTB1/L/MBGW8z3mvsait\r\na=ice-options:trickle\r\na=fingerprint:sha-256 FD:EB:48:AC:4F:08:67:DB:D3:13:36:05:0F:FA:27:14:FB:99:86:DA:95:A9:E1:4E:12:E7:C1:00:8F:2D:17:71\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.778224,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e7592b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"content":{"candidate":"candidate:907999665 1 udp 2113937151 fa2c24b4-e91e-4be0-9ab5-a82eec84b801.local 45128 typ host generation 0 ufrag 8CLx network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0e7592b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0'"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e7592b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling 200 11ms","method":"POST","requestID":"0e7592b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling"} device-1 | {"content":{"candidate":"candidate:4028433019 1 udp 2113937151 8900a86a-51c9-488a-b3f8-5d94048b1cc0.local 56649 typ host generation 0 ufrag tEHI network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"632fa5c8ea54d24ee1e69eb38128371c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"632fa5c8ea54d24ee1e69eb38128371c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"}}},"level":"info","message":"received a callback","requestID":"632fa5c8ea54d24ee1e69eb38128371c"} device-1 | {"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"632fa5c8ea54d24ee1e69eb38128371c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"632fa5c8ea54d24ee1e69eb38128371c","responseTime":5,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a5a0a67cf8a60a56ca513bd07d853d92","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a5a0a67cf8a60a56ca513bd07d853d92","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"}}},"level":"info","message":"received a callback","requestID":"a5a0a67cf8a60a56ca513bd07d853d92"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"0e82d920-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd9be876b-c4bd-4a6d-9649-36c0d8543251","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a355282c-1b6e-43a2-af09-1d9502ef4393","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.9109752} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.647773,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e82d920-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","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","method":"POST","requestID":"0e82d920-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"0e82d920-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251 200 9ms","method":"GET","requestID":"0e82d920-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 56ms","method":"POST","requestID":"a5a0a67cf8a60a56ca513bd07d853d92","responseTime":56,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.059","http_referrer":"","http_user_agent":"node-fetch","requestID":"a5a0a67cf8a60a56ca513bd07d853d92"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e8aa150-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5612d278-8461-4f18-856a-792c94f9f205","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969577.9860075} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.638066,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e8aa150-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"0e8aa150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e8aa150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling 200 35ms","method":"POST","requestID":"0e8aa150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0e901f90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:17Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8961ed4b-9b3d-4543-8a2b-f38c612e508d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.0003402} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.217461,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e901f90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0e901f90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0e901f90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling 200 14ms","method":"POST","requestID":"0e901f90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ","level":"info","message":"auth send jwt","requestID":"a60005c5fb6c1e467b34951ac33cc783"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a60005c5fb6c1e467b34951ac33cc783","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","requestID":"a60005c5fb6c1e467b34951ac33cc783"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.14363,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a60005c5fb6c1e467b34951ac33cc783","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969578,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"a60005c5fb6c1e467b34951ac33cc783","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","requestID":"a60005c5fb6c1e467b34951ac33cc783"} experiment-1 | {"level":"info","message":"GET /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235 200 15ms","method":"GET","requestID":"a60005c5fb6c1e467b34951ac33cc783","responseTime":15,"status":200,"url":"/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"} gateway-1 | {"time_local":"14/Mar/2025:16:26:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235 HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a60005c5fb6c1e467b34951ac33cc783"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ","level":"info","message":"auth send jwt","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"12697c5b2ea2c2c62bea8deefa37b13d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.247654,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"12697c5b2ea2c2c62bea8deefa37b13d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969578,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"12697c5b2ea2c2c62bea8deefa37b13d","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Attempting to finish experiment","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.690869,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969578,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","device":"d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251","device":"c022becf-9ae4-40da-a7f7-ca46330fe8b7","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"baad4af174a106caaee1bcc20b2ecea1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"baad4af174a106caaee1bcc20b2ecea1","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"}}},"level":"info","message":"received a callback","requestID":"baad4af174a106caaee1bcc20b2ecea1"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd9be876b-c4bd-4a6d-9649-36c0d8543251': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd9be876b-c4bd-4a6d-9649-36c0d8543251","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"0494c68e-cd51-4dec-a0fc-e3b922237df9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8000813} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"887d0a168ff7eaf2a770f59079b2b9c9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61d89292-5997-4b1e-b21d-24707f74d2b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8003266} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"887d0a168ff7eaf2a770f59079b2b9c9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"}}},"level":"info","message":"received a callback","requestID":"887d0a168ff7eaf2a770f59079b2b9c9"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"d9be876b-c4bd-4a6d-9649-36c0d8543251","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251 204 57ms","method":"DELETE","requestID":"0f080eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":57,"status":204,"url":"/peerconnections/d9be876b-c4bd-4a6d-9649-36c0d8543251"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"},"level":"info","message":"Successfully finished experiment","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f135950-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd4ca1fc2-80d7-4514-a610-8fa667c0d8b0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30ed4cfc-24d6-47ca-9fd4-ae60d516cf9a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8573892} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.245275,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0f135950-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"0f135950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f135950-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling 200 10ms","method":"POST","requestID":"0f135950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"0f155520-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F791c317b-20d3-4102-ab27-c9df6bf9e235': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F791c317b-20d3-4102-ab27-c9df6bf9e235","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"cf4493ed-2f2d-4469-b3a5-e87645dc7dcb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8681421} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"053f9199-bf8b-40c8-ae5f-ae3bdf2281c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8683984} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","method":"POST","requestID":"12697c5b2ea2c2c62bea8deefa37b13d","responseTime":18,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc022becf-9ae4-40da-a7f7-ca46330fe8b7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b11aa469-487d-422a-a8a0-1190f733ced4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969578.8702576} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.218873,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0f155520-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0f155520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"0f155520-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling 200 9ms","method":"POST","requestID":"0f155520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"12697c5b2ea2c2c62bea8deefa37b13d"} experiment-1 | {"level":"info","message":"DELETE /experiments/791c317b-20d3-4102-ab27-c9df6bf9e235 204 201ms","method":"DELETE","requestID":"12697c5b2ea2c2c62bea8deefa37b13d","responseTime":201,"status":204,"url":"/experiments/791c317b-20d3-4102-ab27-c9df6bf9e235"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"baad4af174a106caaee1bcc20b2ecea1","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"baad4af174a106caaee1bcc20b2ecea1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"887d0a168ff7eaf2a770f59079b2b9c9","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"887d0a168ff7eaf2a770f59079b2b9c9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ","level":"info","message":"auth send jwt","requestID":"a43dbe5d5b466643dbdf29b7168fa96c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a43dbe5d5b466643dbdf29b7168fa96c"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:18Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.859213,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a43dbe5d5b466643dbdf29b7168fa96c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969578,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OH0.zdiZEldkOsnG3bzweSJPqYGxew3B3N0wznmL7T0xztQ"} gateway-1 | {"time_local":"14/Mar/2025:16:26:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2322","request_time":"1.653","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3a63d80d8fb7d447fd0ee11a8019d85d"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c022becf-9ae4-40da-a7f7-ca46330fe8b7' closed"} gateway-1 | {"time_local":"14/Mar/2025:16:26:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2323","request_time":"1.648","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0adfa5aaafcef0522493fea9129e45cd"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3fbc965b-a7a2-4529-b27d-6f3aa6b67a0e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.0411355} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"84705454-6b4d-4976-845e-49306fdb9987","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.0450609} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d4ca1fc2-80d7-4514-a610-8fa667c0d8b0' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"0aa901c3-4820-4445-ae8a-59aeda0cf560","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.0575588} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"270c6478-3f79-4ba9-8476-922d05d89bdf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.0577972} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.057542676Z"}]},"request_id":"e8107471-9e7f-4e5b-8639-bde1b5a2cc89","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.0614583} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a43dbe5d5b466643dbdf29b7168fa96c"} device-1 | {"level":"info","message":"POST /devices? 201 66ms","method":"POST","requestID":"a43dbe5d5b466643dbdf29b7168fa96c","responseTime":66,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a43dbe5d5b466643dbdf29b7168fa96c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OX0.6p6UypBPfnJIDgDxo-1LojCjNUCLvHyTaYX54B3cC80","level":"info","message":"auth send jwt","requestID":"072c24ddfb8c76df9855c57cdf3df254"} device-1 | {"level":"info","message":"postDevices called","requestID":"072c24ddfb8c76df9855c57cdf3df254"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:19Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.998159,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:19Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"072c24ddfb8c76df9855c57cdf3df254","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969579,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU3OX0.6p6UypBPfnJIDgDxo-1LojCjNUCLvHyTaYX54B3cC80"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"991fb2a5-8d3b-43ec-be35-aed6bcbfb649","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.1082265} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b018199d-7524-4974-9d50-1fd4f25bd1dc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.1378877} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"f04e1329-f0e5-4c9e-a87e-d0513655680a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.1474102} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a64ad0bb-ed59-4ad5-b0d9-810b135d04f1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.1476321} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"df39d517-8ca8-40c4-9515-40285ec40d63","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969579.1525838} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"072c24ddfb8c76df9855c57cdf3df254"} gateway-1 | {"time_local":"14/Mar/2025:16:26:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.090","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"072c24ddfb8c76df9855c57cdf3df254"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"072c24ddfb8c76df9855c57cdf3df254","responseTime":63,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MH0.HwZKdOWxh68bEpYRqi3wkun7dIoYHpQ5dD4H8d0czgw","level":"info","message":"auth send jwt","requestID":"0226026244d3ee26f70a755ea21718ac"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0226026244d3ee26f70a755ea21718ac"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:20Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.637394,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0226026244d3ee26f70a755ea21718ac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969580,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MH0.HwZKdOWxh68bEpYRqi3wkun7dIoYHpQ5dD4H8d0czgw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"c1bff7e7-4ffb-410f-b356-2c57b18356b4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969580.0672956} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"275cdbe6-e4e8-47aa-8c5b-3c7d7cc0abaa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969580.072213} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"18569519-3244-4542-b3c1-96fbac192820","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969580.109159} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0226026244d3ee26f70a755ea21718ac"} device-1 | {"level":"info","message":"PATCH /devices/07ad9844-877d-40c3-9979-84c1d605121a 200 53ms","method":"PATCH","requestID":"0226026244d3ee26f70a755ea21718ac","responseTime":53,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/07ad9844-877d-40c3-9979-84c1d605121a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"0226026244d3ee26f70a755ea21718ac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MH0.HwZKdOWxh68bEpYRqi3wkun7dIoYHpQ5dD4H8d0czgw","level":"info","message":"auth send jwt","requestID":"0d40a3ec6b80a52f03a3affc49bc214f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0d40a3ec6b80a52f03a3affc49bc214f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0d40a3ec6b80a52f03a3affc49bc214f"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:20Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.747417,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0d40a3ec6b80a52f03a3affc49bc214f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969580,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MH0.HwZKdOWxh68bEpYRqi3wkun7dIoYHpQ5dD4H8d0czgw"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0d40a3ec6b80a52f03a3affc49bc214f","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0d40a3ec6b80a52f03a3affc49bc214f"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/websocket 200 40ms","method":"POST","requestID":"0d40a3ec6b80a52f03a3affc49bc214f","responseTime":40,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"0d40a3ec6b80a52f03a3affc49bc214f"} device-1 | {"level":"info","message":"device 'http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"12da71aaa01018920b6c888910d1bfa3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"12da71aaa01018920b6c888910d1bfa3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/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":"12da71aaa01018920b6c888910d1bfa3"} device-1 | {"level":"info","message":"OPTIONS /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/websocket 200 1ms","method":"OPTIONS","requestID":"12da71aaa01018920b6c888910d1bfa3","responseTime":1,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"0b4bde9f01071f4399615aed23c10a1a"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0b4bde9f01071f4399615aed23c10a1a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0b4bde9f01071f4399615aed23c10a1a"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.264716,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0b4bde9f01071f4399615aed23c10a1a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0b4bde9f01071f4399615aed23c10a1a","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0b4bde9f01071f4399615aed23c10a1a"} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/websocket 200 29ms","method":"POST","requestID":"0b4bde9f01071f4399615aed23c10a1a","responseTime":29,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.035","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0b4bde9f01071f4399615aed23c10a1a"} device-1 | {"level":"info","message":"device 'http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.398896,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.057542676Z"}]},"request_id":"ec2771ce-010c-4d20-8900-15c10c38c3fa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.5170724} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa"} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa","responseTime":7,"status":200,"url":"/relations/query"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa"} device-1 | {"level":"info","message":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? 200 18ms","method":"GET","requestID":"aecc08e6c3d5a9daf7c4b2f0b2bdd6aa","responseTime":18,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"1c560b317b8540f45b6cd98d43c907af"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1c560b317b8540f45b6cd98d43c907af","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1c560b317b8540f45b6cd98d43c907af"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.979334,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1c560b317b8540f45b6cd98d43c907af","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1c560b317b8540f45b6cd98d43c907af","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"e2f3b43f-ceec-4a0c-9528-8dd66f1865eb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.531686} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1c560b317b8540f45b6cd98d43c907af","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1c560b317b8540f45b6cd98d43c907af"} device-1 | {"level":"info","message":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? 200 10ms","method":"GET","requestID":"1c560b317b8540f45b6cd98d43c907af","responseTime":10,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1c560b317b8540f45b6cd98d43c907af"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"54521501473b391841de9272c32c7d69"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"54521501473b391841de9272c32c7d69","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"54521501473b391841de9272c32c7d69"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.940647,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"54521501473b391841de9272c32c7d69","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"54521501473b391841de9272c32c7d69","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to run experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to book experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully booked experiment","requestID":"54521501473b391841de9272c32c7d69"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.903077,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.030424,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.057542676Z"}]},"request_id":"f7674f82-036d-42bb-89ef-e7e3ba671f2e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.6374953} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"f947a959-d644-459e-a221-04f86fd4ac5d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.638064} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? 200 38ms","method":"GET","requestID":"10b71e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? 200 37ms","method":"GET","requestID":"10b74550-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Setting up experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully locked booking for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to update booking for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully updated booking for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully set up experiment","requestID":"54521501473b391841de9272c32c7d69"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10c63970-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully running experiment","requestID":"54521501473b391841de9272c32c7d69"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.919255,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:36130","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743335,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.64205,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"959332e4-58b7-4bad-8b8d-5843c0588faf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7328804} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10c63970-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"10c63970-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10c63970-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"b8a1ad2c-dea2-4658-90c6-521d79174177","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.737394} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling 200 35ms","method":"POST","requestID":"10c63970-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.057542676Z"}]},"request_id":"93eb5664-58d2-4cef-9ed6-c28bf041850a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7382293} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10cc05d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? 200 43ms","method":"GET","requestID":"10c5eb50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb575d95-010c-44f3-9cf0-69b944f3d5e1#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb575d95-010c-44f3-9cf0-69b944f3d5e1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ad1f70cf-f990-4553-b46c-9cdd25f1a716","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7436721} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1250f560-2567-497c-a430-070bf68a8161","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7438445} device-1 | {"level":"info","message":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? 200 46ms","method":"GET","requestID":"10c59d30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc?"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"54521501473b391841de9272c32c7d69","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3a7e62c9-b882-45ba-90e5-8b4f97dd5872","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7472823} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.9748,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10cd1740-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10cc05d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"10cc05d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10cc05d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling 200 12ms","method":"POST","requestID":"10cc05d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.243","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"54521501473b391841de9272c32c7d69"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"941e35d7-5a00-40b2-b16a-9d172dab00a8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7783232} experiment-1 | {"data":{"experiment":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"level":"info","message":"POST /experiments? 201 239ms","method":"POST","requestID":"54521501473b391841de9272c32c7d69","responseTime":239,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.227485,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10cd1740-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"10cd1740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"ca1ea24c32a59914c851441b6746fb5e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ca1ea24c32a59914c851441b6746fb5e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ca1ea24c32a59914c851441b6746fb5e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10cd1740-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling 200 39ms","method":"POST","requestID":"10cd1740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.959292,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ca1ea24c32a59914c851441b6746fb5e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ca1ea24c32a59914c851441b6746fb5e","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10d358d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"348ae03e-329c-43ba-81c5-2e82471721b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7945592} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.057542676Z"}]},"request_id":"949a982c-4547-408c-8178-e543d74a477d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.7946575} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ca1ea24c32a59914c851441b6746fb5e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.163566,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10d358d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"10d358d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ca1ea24c32a59914c851441b6746fb5e"} device-1 | {"level":"info","message":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? 200 17ms","method":"GET","requestID":"ca1ea24c32a59914c851441b6746fb5e","responseTime":17,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10d358d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling 200 13ms","method":"POST","requestID":"10d358d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Building connection plan","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"1ec92421-cc38-4bd6-85cd-9ec032a8ee61"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"1a37b7d0-59b2-4dec-b93f-41cfd9c545ff"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"c4287f97-80ce-4858-a95f-5fe440da3c60"}]},"level":"info","message":"Built pairwise service configurations","requestID":"54521501473b391841de9272c32c7d69"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"54521501473b391841de9272c32c7d69"} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/69190c84-101c-40ca-bf73-f69a859bc4bc? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca1ea24c32a59914c851441b6746fb5e"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU","level":"info","message":"auth send jwt","requestID":"98bb81d7bc865a3c9ac1473eb6211441"} authentication-1 | {"level":"info","message":"GET /auth 200 24ms","method":"GET","requestID":"98bb81d7bc865a3c9ac1473eb6211441","responseTime":24,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"98bb81d7bc865a3c9ac1473eb6211441"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.340351,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.650406,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"98bb81d7bc865a3c9ac1473eb6211441","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969581,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4MX0.rIEfRL1NN7CYXO-d0k_bGGdNW8NfFCUWF3Alp9V6-rU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"98bb81d7bc865a3c9ac1473eb6211441","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:19.147385409Z"}]},"request_id":"29856435-aec8-43a6-bb4a-4aa77fdea71b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.835457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"98bb81d7bc865a3c9ac1473eb6211441","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"98bb81d7bc865a3c9ac1473eb6211441"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c167adf8-ac7b-4619-9c1b-ddda431bb349","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.8383915} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9539e3a0-1ba2-4172-9401-2efcf12e99bf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.8386538} gateway-1 | {"time_local":"14/Mar/2025:16:26:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"98bb81d7bc865a3c9ac1473eb6211441"} device-1 | {"level":"info","message":"GET /devices/07ad9844-877d-40c3-9979-84c1d605121a? 200 11ms","method":"GET","requestID":"98bb81d7bc865a3c9ac1473eb6211441","responseTime":11,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1'","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1'","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 61ms","method":"POST","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544","responseTime":61,"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","requestID":"10d8b000-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}],"tiebreaker":false} device-1 | {"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"54521501473b391841de9272c32c7d69"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10e951d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a41502f8-3286-46a7-bacd-657056afc377","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.9379008} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.501448,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10e951d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"10e951d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10e951d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling 200 8ms","method":"POST","requestID":"10e951d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"10ead870-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cba6cc4b-84c2-45b2-a7fa-9be226474dd0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969581.9474373} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.266471,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"10ead870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"10ead870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"10ead870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling 200 8ms","method":"POST","requestID":"10ead870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling"} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 7179335401975159954 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:lc5w\r\na=ice-pwd:faiJtZWCbJCXxsHyYCQWOctu\r\na=ice-options:trickle\r\na=fingerprint:sha-256 90:A1:12:20:60:FB:23:23:34:25:2D:15:0A:EC:01:85:49:D9:FF:B1:21:F1:76:B9:C1:16:BB:62:03:09:AC:A5\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:4229464787 1 udp 2113937151 68a23cb7-fcda-422f-8794-55097d330d3c.local 34101 typ host generation 0 ufrag lc5w network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc'"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"470b21df81a9b6253b3b21dfc291a7e0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"470b21df81a9b6253b3b21dfc291a7e0","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"}}},"level":"info","message":"received a callback","requestID":"470b21df81a9b6253b3b21dfc291a7e0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"470b21df81a9b6253b3b21dfc291a7e0","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"470b21df81a9b6253b3b21dfc291a7e0"} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"75c5e7feb6ff8af558516ab2a18fe1f7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"75c5e7feb6ff8af558516ab2a18fe1f7","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"}}},"level":"info","message":"received a callback","requestID":"75c5e7feb6ff8af558516ab2a18fe1f7"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"12233160-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:23Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff8d27716-32ec-4294-be87-d04886a138d1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"95f047e2-ec59-416b-ad40-7dd22fcdbe54","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969583.9950745} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.917553,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"12233160-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","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","method":"POST","requestID":"12233160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"12233160-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/f8d27716-32ec-4294-be87-d04886a138d1 200 10ms","method":"GET","requestID":"12233160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"75c5e7feb6ff8af558516ab2a18fe1f7","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"75c5e7feb6ff8af558516ab2a18fe1f7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12275010-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a0806e9f-850f-4ce5-8c7b-73c0a0f1a0a5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.0225692} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.707528,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12275010-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"12275010-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling 200 11ms","method":"POST","requestID":"12275010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12294be0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"12275010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.082704,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"358b64a6-ac06-488c-aba4-252db11c1593","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.0352123} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"12294be0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"12294be0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12294be0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling 200 11ms","method":"POST","requestID":"12294be0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4","level":"info","message":"auth send jwt","requestID":"e54010744f03ad31d437f736ccfaa5ef"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e54010744f03ad31d437f736ccfaa5ef","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","requestID":"e54010744f03ad31d437f736ccfaa5ef"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.030566,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e54010744f03ad31d437f736ccfaa5ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969584,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e54010744f03ad31d437f736ccfaa5ef","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","requestID":"e54010744f03ad31d437f736ccfaa5ef"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e54010744f03ad31d437f736ccfaa5ef"} experiment-1 | {"level":"info","message":"GET /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1 200 14ms","method":"GET","requestID":"e54010744f03ad31d437f736ccfaa5ef","responseTime":14,"status":200,"url":"/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4","level":"info","message":"auth send jwt","requestID":"cf0a573e97ac4dffbec4719550658450"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cf0a573e97ac4dffbec4719550658450","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","requestID":"cf0a573e97ac4dffbec4719550658450"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.950757,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cf0a573e97ac4dffbec4719550658450","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969584,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cf0a573e97ac4dffbec4719550658450","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Attempting to finish experiment","requestID":"cf0a573e97ac4dffbec4719550658450"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.798208,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969584,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1","device":"69190c84-101c-40ca-bf73-f69a859bc4bc","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"07ad9844-877d-40c3-9979-84c1d605121a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f8d27716-32ec-4294-be87-d04886a138d1","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff8d27716-32ec-4294-be87-d04886a138d1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff8d27716-32ec-4294-be87-d04886a138d1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"caad31d6-a8a6-428a-9cec-aa6dad0f0dd6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4076438} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"18eedc3689ca1df9f119b8093c07e77e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d65ce7f5-cf3a-42c2-a8c8-6c553121e60b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4079525} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"18eedc3689ca1df9f119b8093c07e77e","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"}}},"level":"info","message":"received a callback","requestID":"18eedc3689ca1df9f119b8093c07e77e"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5f0be7445336bed7f682c40ac4af41f5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5f0be7445336bed7f682c40ac4af41f5","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"}}},"level":"info","message":"received a callback","requestID":"5f0be7445336bed7f682c40ac4af41f5"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/f8d27716-32ec-4294-be87-d04886a138d1 204 41ms","method":"DELETE","requestID":"1260af90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":41,"status":204,"url":"/peerconnections/f8d27716-32ec-4294-be87-d04886a138d1"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"},"level":"info","message":"Successfully finished experiment","requestID":"cf0a573e97ac4dffbec4719550658450"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"12691400-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F69190c84-101c-40ca-bf73-f69a859bc4bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"26409d22-3be3-4fcc-8b7d-fd67792509af","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4530065} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.71115,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"12691400-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"12691400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"12691400-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling 200 9ms","method":"POST","requestID":"12691400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/69190c84-101c-40ca-bf73-f69a859bc4bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"126ac1b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb575d95-010c-44f3-9cf0-69b944f3d5e1': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fbb575d95-010c-44f3-9cf0-69b944f3d5e1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"3c66ade0-863a-41a1-bdcd-bc843a2f849f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4598017} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79586ce1-6742-4d85-97e5-d7b410c70ea4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4599657} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"cf0a573e97ac4dffbec4719550658450","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F07ad9844-877d-40c3-9979-84c1d605121a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3e3fe0b7-2328-49ae-b2e3-e65b01e41d27","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.4636488} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.214774,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"126ac1b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"126ac1b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"126ac1b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling 200 8ms","method":"POST","requestID":"126ac1b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/07ad9844-877d-40c3-9979-84c1d605121a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1","requestID":"cf0a573e97ac4dffbec4719550658450"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf0a573e97ac4dffbec4719550658450"} experiment-1 | {"level":"info","message":"DELETE /experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1 204 185ms","method":"DELETE","requestID":"cf0a573e97ac4dffbec4719550658450","responseTime":185,"status":204,"url":"/experiments/bb575d95-010c-44f3-9cf0-69b944f3d5e1"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2274","request_time":"4.407","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"7d123f6430f3c32c9876fa67abebbc06"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"18eedc3689ca1df9f119b8093c07e77e","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"18eedc3689ca1df9f119b8093c07e77e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"5f0be7445336bed7f682c40ac4af41f5","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"5f0be7445336bed7f682c40ac4af41f5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4","level":"info","message":"auth send jwt","requestID":"8d3e76996b8d9365b2e11f00b94886ac"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8d3e76996b8d9365b2e11f00b94886ac"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2146","request_time":"3.095","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c305e3c69bd7ad8c314c434dcfbea243"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.171748,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8d3e76996b8d9365b2e11f00b94886ac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969584,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/07ad9844-877d-40c3-9979-84c1d605121a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"72e7d013-3727-4a10-8724-99a856ed9ae3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6143696} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/69190c84-101c-40ca-bf73-f69a859bc4bc' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"51eb3955-ea26-47df-bd54-8b1c9ff7085c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6194265} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"2c886343-cc46-4bb7-b7b6-180ff3c3d162","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6284232} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"006b92f7-051a-4c2f-91dc-619b8139b9f8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6285808} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"64853db4-fb04-4103-b9e2-abf12e8ded57","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6573584} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8d3e76996b8d9365b2e11f00b94886ac"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d3e76996b8d9365b2e11f00b94886ac"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"8d3e76996b8d9365b2e11f00b94886ac","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4","level":"info","message":"auth send jwt","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.780409,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969584,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NH0.gCBY7X-_aMmYYFFzUKM0dgEAD8IEjasC9Zma7H5Q5q4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f18b5fc7-1bb5-40e9-a1cb-4c15204da140","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.6813483} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"14aa460b-8384-4512-b028-d52ebd1a3943","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.710315} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"70d12688-6ca0-4313-b6ac-7c7eb98af26f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.7216117} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5986d93a-1db2-45d4-849e-70461a59a376","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.721722} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.721594233Z"}]},"request_id":"e707dad1-19cd-4f00-a9c7-167d5db1554d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969584.726051} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe","responseTime":63,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.067","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"76ee89ee681d91dbe0a1ce6b63ba06fe"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NX0.9fzkVu45dHKGVfxnbSQbShO4Fc_upCjlBV8GOZBSkwQ","level":"info","message":"auth send jwt","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:25Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.777919,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969585,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NX0.9fzkVu45dHKGVfxnbSQbShO4Fc_upCjlBV8GOZBSkwQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"cd6360dc-563d-4480-9c5c-a3bf6b13dc51","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969585.6245928} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6a286281-c151-42b3-a281-11806571455f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969585.6289117} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"b66904db-55a4-42b0-9f3c-a6430f8088f7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969585.671795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71"} gateway-1 | {"time_local":"14/Mar/2025:16:26:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.086","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71"} device-1 | {"level":"info","message":"PATCH /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd 200 83ms","method":"PATCH","requestID":"6d7cfe269a4ce62dc9fcfa493ac22b71","responseTime":83,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NX0.9fzkVu45dHKGVfxnbSQbShO4Fc_upCjlBV8GOZBSkwQ","level":"info","message":"auth send jwt","requestID":"219f1bf89e2599c8046e4de8c2e5efe0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"219f1bf89e2599c8046e4de8c2e5efe0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"219f1bf89e2599c8046e4de8c2e5efe0"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:25Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.785371,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:25Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"219f1bf89e2599c8046e4de8c2e5efe0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969585,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4NX0.9fzkVu45dHKGVfxnbSQbShO4Fc_upCjlBV8GOZBSkwQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"219f1bf89e2599c8046e4de8c2e5efe0","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"219f1bf89e2599c8046e4de8c2e5efe0"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/websocket 200 38ms","method":"POST","requestID":"219f1bf89e2599c8046e4de8c2e5efe0","responseTime":38,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"219f1bf89e2599c8046e4de8c2e5efe0"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0caa3bfc94237eb956913b9e535bb634","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0caa3bfc94237eb956913b9e535bb634","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/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":"0caa3bfc94237eb956913b9e535bb634"} device-1 | {"level":"info","message":"OPTIONS /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/websocket 200 1ms","method":"OPTIONS","requestID":"0caa3bfc94237eb956913b9e535bb634","responseTime":1,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4Nn0.Lcwnp12pBRVHPFixZHp77JoOEIZa-a8xu6cAHAtzNiI","level":"info","message":"auth send jwt","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:26Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.245421,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:26Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2efd36353f9b7c076a1d75db0d7e8b1c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969586,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4Nn0.Lcwnp12pBRVHPFixZHp77JoOEIZa-a8xu6cAHAtzNiI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/websocket 200 27ms","method":"POST","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c","responseTime":27,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2efd36353f9b7c076a1d75db0d7e8b1c"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q","level":"info","message":"auth send jwt","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669617,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"2ab78cfa-453e-423b-89c6-9128b5dca7d5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.0388677} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f"} device-1 | {"level":"info","message":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? 200 12ms","method":"GET","requestID":"dbb2b2bd0afc9e543a9e2de9ec721e8f","responseTime":12,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q","level":"info","message":"auth send jwt","requestID":"55ddb7dfc41562f51637d172fe68d440"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"55ddb7dfc41562f51637d172fe68d440","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"55ddb7dfc41562f51637d172fe68d440"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.910962,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"55ddb7dfc41562f51637d172fe68d440","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"55ddb7dfc41562f51637d172fe68d440","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.721594233Z"}]},"request_id":"12423171-aa29-4814-8c14-641e640f8734","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.0569038} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"55ddb7dfc41562f51637d172fe68d440","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"55ddb7dfc41562f51637d172fe68d440"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"55ddb7dfc41562f51637d172fe68d440"} device-1 | {"level":"info","message":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? 200 13ms","method":"GET","requestID":"55ddb7dfc41562f51637d172fe68d440","responseTime":13,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q","level":"info","message":"auth send jwt","requestID":"29e9e892688168c94549c5cf9be1f8f9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"29e9e892688168c94549c5cf9be1f8f9","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"29e9e892688168c94549c5cf9be1f8f9"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.921704,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"29e9e892688168c94549c5cf9be1f8f9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"29e9e892688168c94549c5cf9be1f8f9","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to run experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to book experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully booked experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.631379,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715591,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"9d706b8e-b801-497d-b6d5-77541a214bf2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.1202424} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.721594233Z"}]},"request_id":"c473e7b6-0cc0-4470-983a-3b113e0c1b6d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.1234028} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? 200 12ms","method":"GET","requestID":"13ff9280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? 200 38ms","method":"GET","requestID":"13ffe0a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Setting up experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully locked booking for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to update booking for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully updated booking for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully set up experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully running experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.883891,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"14173930-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.97474,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.856791,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"76972a78-1a69-4891-a90c-b9a5fc8b5871","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3012462} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.721594233Z"}]},"request_id":"8b466a13-54c2-4054-9c13-b3ab410905d7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3025584} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"14173930-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"14173930-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 29ms","method":"POST","requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"0cc31a54-4432-435a-ba46-1587dc1a4e79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3037238} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1cb34215-735e-4389-be50-65bacbc27d69#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1cb34215-735e-4389-be50-65bacbc27d69","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"5cb421e3-6003-4423-9d86-bc1d7d9cbe29","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3081548} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"29b26b7c-0173-4018-9e78-402386a1f810","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3084898} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"29e9e892688168c94549c5cf9be1f8f9","responseTime":40,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"14173930-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling 200 46ms","method":"POST","requestID":"14173930-00f1-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? 200 49ms","method":"GET","requestID":"1416c400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":49,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? 200 52ms","method":"GET","requestID":"141675e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":52,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"141eb340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"29e9e892688168c94549c5cf9be1f8f9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"141f2870-00f1-11f0-9a2b-c98a3cf1c544"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.256","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 250ms","method":"POST","requestID":"29e9e892688168c94549c5cf9be1f8f9","responseTime":250,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"28c93590-8cb4-45bf-a1c4-a9081a0d7d5f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3207412} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.809512,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"141eb340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"141eb340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d002e77-c39a-48a9-a419-932a154f1265","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3475866} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q","level":"info","message":"auth send jwt","requestID":"9fe7b319f01e61d7349ab1023e5acee6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9fe7b319f01e61d7349ab1023e5acee6","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.192443,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"9fe7b319f01e61d7349ab1023e5acee6"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"141f2870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"141f2870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"141eb340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling 200 36ms","method":"POST","requestID":"141eb340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.256032,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"141f2870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling 200 34ms","method":"POST","requestID":"141f2870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"9fe7b319f01e61d7349ab1023e5acee6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9fe7b319f01e61d7349ab1023e5acee6","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1424cdc0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.628406466Z"}]},"request_id":"baa4699f-0a4a-45e7-acc8-6f81656875d7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3573182} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9fe7b319f01e61d7349ab1023e5acee6","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77dea346-4401-44ee-b048-10be25f4b884","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3597405} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.283853,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"9fe7b319f01e61d7349ab1023e5acee6"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1424cdc0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9fe7b319f01e61d7349ab1023e5acee6"} device-1 | {"level":"info","message":"GET /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd? 200 12ms","method":"GET","requestID":"9fe7b319f01e61d7349ab1023e5acee6","responseTime":12,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd?"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1424cdc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1424cdc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling 200 8ms","method":"POST","requestID":"1424cdc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Building connection plan","requestID":"29e9e892688168c94549c5cf9be1f8f9"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"73236b92-a08c-414b-9878-c5d2084bc2e8"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"e5269764-1b9f-4cd8-b345-47614d80d5c2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"8e8b1b65-164d-435a-a321-76a1e19cf888"}]},"level":"info","message":"Built pairwise service configurations","requestID":"29e9e892688168c94549c5cf9be1f8f9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q","level":"info","message":"auth send jwt","requestID":"98df91e5a8d9306a897ab5dc5634f2c3"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"29e9e892688168c94549c5cf9be1f8f9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"98df91e5a8d9306a897ab5dc5634f2c3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"98df91e5a8d9306a897ab5dc5634f2c3"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.915364,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"98df91e5a8d9306a897ab5dc5634f2c3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"98df91e5a8d9306a897ab5dc5634f2c3","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.864822,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969587,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4N30.WU4vnJvUhRl0MuCmEJG3BZR_MX6znpRLOMlEG06Zj4Q"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:24.721594233Z"}]},"request_id":"1a92da82-48f4-4c2c-9a0a-cb2c5feb739c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.3984098} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"98df91e5a8d9306a897ab5dc5634f2c3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"98df91e5a8d9306a897ab5dc5634f2c3"} gateway-1 | {"time_local":"14/Mar/2025:16:26:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"98df91e5a8d9306a897ab5dc5634f2c3"} device-1 | {"level":"info","message":"GET /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9? 200 36ms","method":"GET","requestID":"98df91e5a8d9306a897ab5dc5634f2c3","responseTime":36,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"15997117-e1b9-4f55-b5c2-f7857ad18c96","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.403963} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"870a6e7f-fd0d-4213-af8a-2352fa8f384b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.4041965} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d'","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d'","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 82ms","method":"POST","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":82,"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","requestID":"14267b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}],"tiebreaker":true} device-1 | {"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"29e9e892688168c94549c5cf9be1f8f9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"143a5190-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"content":{"sdp":"v=0\r\no=- 6838407323719080558 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:p85e\r\na=ice-pwd:/7/NqvF6Q8f60UyLaDS36rnd\r\na=ice-options:trickle\r\na=fingerprint:sha-256 67:99:60:15:DC:57:24:D4:B8:45:DB:16:D1:06:80:BB:2E:BE:0E:76:A9:48:6C:92:C8:9F:BD:00:03:49:37:E6\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a80f4e1-6e6e-4563-8eae-8a389a4ba41f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.5026116} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.068934,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"143a5190-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"143a5190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"143a5190-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling 200 10ms","method":"POST","requestID":"143a5190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"143bff40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d0c15ad-496d-497b-ae07-7724296f0c36","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969587.5125468} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.127417,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"143bff40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"143bff40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"143bff40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling 200 8ms","method":"POST","requestID":"143bff40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling"} device-1 | {"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"67c9f8402ee5c3c09871f444f48656d2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"67c9f8402ee5c3c09871f444f48656d2","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"}}},"level":"info","message":"received a callback","requestID":"67c9f8402ee5c3c09871f444f48656d2"} device-1 | {"content":{"candidate":"candidate:1575527460 1 udp 2113937151 593dd3f5-6399-4b0a-b65b-ffb2328e69a5.local 56202 typ host generation 0 ufrag p85e network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"67c9f8402ee5c3c09871f444f48656d2","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"67c9f8402ee5c3c09871f444f48656d2"} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b8030ce6820158ec3cae1cb00658b5b8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b8030ce6820158ec3cae1cb00658b5b8","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"}}},"level":"info","message":"received a callback","requestID":"b8030ce6820158ec3cae1cb00658b5b8"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1570d5c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa2328910-5583-4632-a4e7-5d36cbb39f1d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"972b202d-1ac1-4b73-bd61-5268f99f0c6a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.5374963} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.663986,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1570d5c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","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","method":"POST","requestID":"1570d5c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1570d5c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d 200 9ms","method":"GET","requestID":"1570d5c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"b8030ce6820158ec3cae1cb00658b5b8","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"b8030ce6820158ec3cae1cb00658b5b8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1574f470-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5edf4d11-5281-4b19-b4e5-bc5f57b64486","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.5639193} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.665272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1574f470-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1574f470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1574f470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling 200 10ms","method":"POST","requestID":"1574f470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1576c930-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd4b3508-6346-44f6-9847-e58d04f1a4ac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.5760086} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.496626,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1576c930-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 17ms","method":"POST","requestID":"1576c930-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1576c930-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling 200 24ms","method":"POST","requestID":"1576c930-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM","level":"info","message":"auth send jwt","requestID":"452316b6654824d89bf53147b1c30ad7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"452316b6654824d89bf53147b1c30ad7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1cb34215-735e-4389-be50-65bacbc27d69","requestID":"452316b6654824d89bf53147b1c30ad7"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.971665,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"452316b6654824d89bf53147b1c30ad7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969589,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"452316b6654824d89bf53147b1c30ad7","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/1cb34215-735e-4389-be50-65bacbc27d69","requestID":"452316b6654824d89bf53147b1c30ad7"} experiment-1 | {"level":"info","message":"GET /experiments/1cb34215-735e-4389-be50-65bacbc27d69 200 13ms","method":"GET","requestID":"452316b6654824d89bf53147b1c30ad7","responseTime":13,"status":200,"url":"/experiments/1cb34215-735e-4389-be50-65bacbc27d69"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1cb34215-735e-4389-be50-65bacbc27d69 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"452316b6654824d89bf53147b1c30ad7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM","level":"info","message":"auth send jwt","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1cb34215-735e-4389-be50-65bacbc27d69","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.228017,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"094e2c1e8ffe71c4027d1e7e69a784c8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969589,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Attempting to finish experiment","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.140142,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969589,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d","device":"3e625c66-ed4b-4873-b508-a059d5ed1fe9","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bbffb520815ebe90f04ed284ffab5b37","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa2328910-5583-4632-a4e7-5d36cbb39f1d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa2328910-5583-4632-a4e7-5d36cbb39f1d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"416cbecf-f9ca-4485-ab7b-b82348722fa2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.780417} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bbffb520815ebe90f04ed284ffab5b37","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ef01538f-86d6-44f1-a2b7-83c4a23bc676","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.7807007} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"}}},"level":"info","message":"received a callback","requestID":"bbffb520815ebe90f04ed284ffab5b37"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0aaa94f0322350462f51ffb2d8807e95","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0aaa94f0322350462f51ffb2d8807e95","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"}}},"level":"info","message":"received a callback","requestID":"0aaa94f0322350462f51ffb2d8807e95"} device-1 | {"data":{"peerconnection":"a2328910-5583-4632-a4e7-5d36cbb39f1d","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d 204 51ms","method":"DELETE","requestID":"159378f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":51,"status":204,"url":"/peerconnections/a2328910-5583-4632-a4e7-5d36cbb39f1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1cb34215-735e-4389-be50-65bacbc27d69"},"level":"info","message":"Successfully finished experiment","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15a15ba0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1346edd0-787b-43f0-8d88-e850ef1e800f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.8554983} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.110188,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"15a15ba0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"15a15ba0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15a15ba0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling 200 10ms","method":"POST","requestID":"15a15ba0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"15a33060-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1cb34215-735e-4389-be50-65bacbc27d69': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1cb34215-735e-4389-be50-65bacbc27d69","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"3909701f-46ab-4a40-a7b2-67fa307bc0bd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.8636909} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"164bafda-81dc-4312-9128-9328c75447d0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.8641276} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8","responseTime":41,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e625c66-ed4b-4873-b508-a059d5ed1fe9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cd97d735-e6ec-4498-bfa0-ea857a8d4cd6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969589.893622} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.003275,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"15a33060-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"15a33060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"15a33060-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling 200 35ms","method":"POST","requestID":"15a33060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1cb34215-735e-4389-be50-65bacbc27d69","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1cb34215-735e-4389-be50-65bacbc27d69 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.244","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2323","request_time":"4.268","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"840ca09205f883fe3bf56fe65ce84aa4"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.209","http_referrer":"","http_user_agent":"node-fetch","requestID":"bbffb520815ebe90f04ed284ffab5b37"} experiment-1 | {"level":"info","message":"DELETE /experiments/1cb34215-735e-4389-be50-65bacbc27d69 204 240ms","method":"DELETE","requestID":"094e2c1e8ffe71c4027d1e7e69a784c8","responseTime":240,"status":204,"url":"/experiments/1cb34215-735e-4389-be50-65bacbc27d69"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 206ms","method":"POST","requestID":"bbffb520815ebe90f04ed284ffab5b37","responseTime":206,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 205ms","method":"POST","requestID":"0aaa94f0322350462f51ffb2d8807e95","responseTime":205,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch","requestID":"0aaa94f0322350462f51ffb2d8807e95"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM","level":"info","message":"auth send jwt","requestID":"0c7490f10679669c36294bef3291dac5"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":6,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2141","request_time":"2.984","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f670db4d27759206750c0a777c67a78a"} device-1 | {"level":"info","message":"postDevices called","requestID":"0c7490f10679669c36294bef3291dac5"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.829453,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:29Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c7490f10679669c36294bef3291dac5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969589,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU4OX0.IVCGUq_RB6taLFWelLg6DNvhqoDfaMDJpDSLelRk7YM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cfe9bbcf-17dc-498d-84b6-cc1b9c0f1edd' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"34a6b18d-e10d-43b3-8bc7-110a503244ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.0351217} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee570175-0b7d-44fd-9ece-08ccccdc3575","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.0400085} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3e625c66-ed4b-4873-b508-a059d5ed1fe9' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ac9be275-8942-45e3-bfd9-0c18d057033f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.0507412} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"61d6fcaa-72eb-4983-8289-367b597e66e4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.050792} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"fd0b1f39-4b2d-428b-a16d-f5ac767d79ec","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.0551555} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0c7490f10679669c36294bef3291dac5"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"0c7490f10679669c36294bef3291dac5","responseTime":86,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c7490f10679669c36294bef3291dac5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA","level":"info","message":"auth send jwt","requestID":"158902e971c91b727f4ec36b7dfa3ac7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"158902e971c91b727f4ec36b7dfa3ac7"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:30Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.878888,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"158902e971c91b727f4ec36b7dfa3ac7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969590,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"317b78e7-87e8-4aa3-abd1-97b9e3785402","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.1019533} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a1ea233-1185-424a-9357-11605f9147c3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.1065536} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"eb40e623-b8c8-4388-9246-cbd1d8edbc02","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.1388383} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d262ae41-f6d0-4c8c-ae12-b1cff5581d32","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.1390927} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"3f11520a-8a0a-4791-9dea-f4d07fef7ab7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969590.1433344} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"158902e971c91b727f4ec36b7dfa3ac7"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"158902e971c91b727f4ec36b7dfa3ac7","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"158902e971c91b727f4ec36b7dfa3ac7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA","level":"info","message":"auth send jwt","requestID":"88c094dfbac32074958b8f4d9f7d9253"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"88c094dfbac32074958b8f4d9f7d9253"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:30Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.727885,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"88c094dfbac32074958b8f4d9f7d9253","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969590,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":27,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA","level":"info","message":"auth send jwt","requestID":"5a6f52a12f53463e4c8524eb8b78131a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5a6f52a12f53463e4c8524eb8b78131a"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"38b38117-de13-4fda-aefc-939049fc7dea","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.00045} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.852114,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5a6f52a12f53463e4c8524eb8b78131a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969590,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MH0.OEcxmxlOjKKoILzz-ZZe-VLONFrFg5DbyXwIiUcmApA"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"28b85ed4-e187-4398-a090-34df70e8e69c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.0057087} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"3f5c0353-27ff-4786-89f6-181b679cf126","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.0436518} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"ee8db883-cd68-4897-ade9-881d6faabfed","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.0443141} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"88c094dfbac32074958b8f4d9f7d9253"} device-1 | {"level":"info","message":"PATCH /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec 200 80ms","method":"PATCH","requestID":"88c094dfbac32074958b8f4d9f7d9253","responseTime":80,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.084","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"88c094dfbac32074958b8f4d9f7d9253"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9ac31af8-e6fd-462f-8bbb-04617fd11bfc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.0484061} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":3,"status":200,"url":"/relations/update"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"3d00ffd33168d600fba6f744f08bd817"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3d00ffd33168d600fba6f744f08bd817","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3d00ffd33168d600fba6f744f08bd817"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688865,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d00ffd33168d600fba6f744f08bd817","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3d00ffd33168d600fba6f744f08bd817","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"d1a39118-e15f-4bf4-840a-f5ac7528b422","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.0604372} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5a6f52a12f53463e4c8524eb8b78131a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.067","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"5a6f52a12f53463e4c8524eb8b78131a"} device-1 | {"level":"info","message":"PATCH /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a 200 63ms","method":"PATCH","requestID":"5a6f52a12f53463e4c8524eb8b78131a","responseTime":63,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"c352785169ea4e4a30320fa5298552d3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c352785169ea4e4a30320fa5298552d3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c352785169ea4e4a30320fa5298552d3"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.684307,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c352785169ea4e4a30320fa5298552d3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"c352785169ea4e4a30320fa5298552d3","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3d00ffd33168d600fba6f744f08bd817"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"3d00ffd33168d600fba6f744f08bd817"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/websocket 200 44ms","method":"POST","requestID":"3d00ffd33168d600fba6f744f08bd817","responseTime":44,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c352785169ea4e4a30320fa5298552d3"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/websocket 200 38ms","method":"POST","requestID":"c352785169ea4e4a30320fa5298552d3","responseTime":38,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"c352785169ea4e4a30320fa5298552d3"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"acdd52e2548ef929739993d3e9c73d4a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"acdd52e2548ef929739993d3e9c73d4a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"acdd52e2548ef929739993d3e9c73d4a"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.642579,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"acdd52e2548ef929739993d3e9c73d4a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"acdd52e2548ef929739993d3e9c73d4a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"da24e5c0-33b8-42c7-91c7-d45ccf481227","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.1548853} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"acdd52e2548ef929739993d3e9c73d4a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"acdd52e2548ef929739993d3e9c73d4a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"acdd52e2548ef929739993d3e9c73d4a"} device-1 | {"level":"info","message":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? 200 10ms","method":"GET","requestID":"acdd52e2548ef929739993d3e9c73d4a","responseTime":10,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"604f285f1babea7e0e5ece2d6b47869e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"604f285f1babea7e0e5ece2d6b47869e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"604f285f1babea7e0e5ece2d6b47869e"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.837428,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"604f285f1babea7e0e5ece2d6b47869e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"604f285f1babea7e0e5ece2d6b47869e","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"9b79f97b-996e-4171-bca6-5d38e9c4e645","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.1928098} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"604f285f1babea7e0e5ece2d6b47869e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"604f285f1babea7e0e5ece2d6b47869e"} device-1 | {"level":"info","message":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? 200 33ms","method":"GET","requestID":"604f285f1babea7e0e5ece2d6b47869e","responseTime":33,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"604f285f1babea7e0e5ece2d6b47869e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"a310c3b5fd92888e29c463a3c4515411"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a310c3b5fd92888e29c463a3c4515411","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a310c3b5fd92888e29c463a3c4515411"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.716427,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a310c3b5fd92888e29c463a3c4515411","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a310c3b5fd92888e29c463a3c4515411","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to run experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to book experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully booked experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653224,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.114966,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"2f7a1a4e-6e7c-45e3-8d98-78247a1ed805","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.2874615} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"3a524b0a-0dba-42be-8f16-217aacfedf33","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.288113} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? 200 36ms","method":"GET","requestID":"1677e580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? 200 12ms","method":"GET","requestID":"167bb610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Setting up experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to update booking for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully updated booking for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully set up experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1684b6c0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully running experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:38830","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.943455,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.580289,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"80f393a1-80ae-4252-bfff-0252daf58563","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.34832} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"608de169-ccf3-486c-9056-f3a4a5822007","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3492014} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"87e97bba-6a52-4e6b-8bbd-38f2274364b7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3498135} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.53748,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1684b6c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? 200 15ms","method":"GET","requestID":"16844190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec?"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"1684b6c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3677f810-7197-4557-9a34-6bcb375b674d#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3677f810-7197-4557-9a34-6bcb375b674d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"cb03b1d8-dd74-494b-8186-ef3c5dc90de1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3527613} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0ae70d53-8d3c-424c-b32c-530b7b2c872b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3531213} device-1 | {"level":"info","message":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? 200 15ms","method":"GET","requestID":"16848fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"a310c3b5fd92888e29c463a3c4515411","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"168727c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1684b6c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling 200 18ms","method":"POST","requestID":"1684b6c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1687c400-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cdace1d1-a3e1-4273-9587-76648ede92fb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3613834} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.016586,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a310c3b5fd92888e29c463a3c4515411"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"168727c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"168727c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.168","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"level":"info","message":"POST /experiments? 201 165ms","method":"POST","requestID":"a310c3b5fd92888e29c463a3c4515411","responseTime":165,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"342fa4a2-65ee-4aa8-9dac-5d5e60f730cf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.365835} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.595062,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"168727c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1687c400-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling 200 12ms","method":"POST","requestID":"168727c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1687c400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"168971b0-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73"} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1687c400-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling 200 15ms","method":"POST","requestID":"1687c400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"627dd5d0-56ff-4ee5-8fb6-4fd9efea2473","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3759341} authorization-1 | {"client_addr":"127.0.0.1:37692","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.938454,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.941352,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"168971b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"168971b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"168971b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling 200 10ms","method":"POST","requestID":"168971b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.050715572Z"}]},"request_id":"a019d177-8343-467e-b1d3-c077b34667d3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3817296} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Building connection plan","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"fe6dcd17-9b4a-4bef-9dd5-88dc959520fc"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"4bc45935-8c38-45ef-a9dd-811d41d2638d"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"232576d2-9623-4829-abbc-d66d69b5dfa8"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a310c3b5fd92888e29c463a3c4515411"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a310c3b5fd92888e29c463a3c4515411"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73"} device-1 | {"level":"info","message":"GET /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec? 200 13ms","method":"GET","requestID":"6e2e88eaa2bddd4be0f3b7c1330b1d73","responseTime":13,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec?"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.805791,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI","level":"info","message":"auth send jwt","requestID":"e264d213986df402aafe16b33672eb50"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e264d213986df402aafe16b33672eb50","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e264d213986df402aafe16b33672eb50"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904781,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e264d213986df402aafe16b33672eb50","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969591,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5MX0.De97UiWTqVdyBoy68c1kPSSTPrh4c711DUAjdXziEuI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e264d213986df402aafe16b33672eb50","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"8e2c14a1-40de-418a-ac12-0f55fedd4dcc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3972719} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d76ce36c-e4b9-46a6-bc52-0d41e13ff3c3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3974535} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:30.138819778Z"}]},"request_id":"d7dfb518-e204-4b88-b514-2e293ce10174","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.3981} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e264d213986df402aafe16b33672eb50","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e264d213986df402aafe16b33672eb50"} device-1 | {"level":"info","message":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? 200 36ms","method":"GET","requestID":"e264d213986df402aafe16b33672eb50","responseTime":36,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e264d213986df402aafe16b33672eb50"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e'","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e'","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 51ms","method":"POST","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":51,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"168b6d80-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a310c3b5fd92888e29c463a3c4515411"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"169ad6d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"72128a70-d218-4b3a-96e3-2071d4162739","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.4886684} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.166386,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"169ad6d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"169ad6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"169ad6d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling 200 7ms","method":"POST","requestID":"169ad6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"169c3660-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5cc6279a-2205-47bd-86d7-c5464b48ae5c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969591.5221765} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.630431,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"169c3660-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"169c3660-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"169c3660-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling 200 32ms","method":"POST","requestID":"169c3660-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling"} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ee6d2fc0d46a291d977f6d47640ca33d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ee6d2fc0d46a291d977f6d47640ca33d","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"}}},"level":"info","message":"received a callback","requestID":"ee6d2fc0d46a291d977f6d47640ca33d"} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"ee6d2fc0d46a291d977f6d47640ca33d","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"ee6d2fc0d46a291d977f6d47640ca33d"} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a2d4ef99541dd45976976cc6671e0597","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a2d4ef99541dd45976976cc6671e0597","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"}}},"level":"info","message":"received a callback","requestID":"a2d4ef99541dd45976976cc6671e0597"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"17d6b230-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9cec1a31-b373-4c77-9034-90d6093aca2e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"856ba580-7fd6-4083-8e21-2efc25700bb6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.5850687} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":31.209884,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"17d6b230-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e","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 33ms","method":"POST","requestID":"17d6b230-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"17d6b230-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e 200 37ms","method":"GET","requestID":"17d6b230-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 56ms","method":"POST","requestID":"a2d4ef99541dd45976976cc6671e0597","responseTime":56,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch","requestID":"a2d4ef99541dd45976976cc6671e0597"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"17dec880-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5545446c-be02-4ca2-9609-b7c383d7f7d9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.6362963} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.370962,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"17dec880-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"17dec880-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"17dec880-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling 200 32ms","method":"POST","requestID":"17dec880-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"17e3f8a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35b159f7-d971-4c24-8b6d-90405ead4cb9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.6458497} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.238776,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"17e3f8a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"17e3f8a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"17e3f8a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling 200 7ms","method":"POST","requestID":"17e3f8a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4","level":"info","message":"auth send jwt","requestID":"0971d2a3452eb995f247b72c198e68ab"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0971d2a3452eb995f247b72c198e68ab","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3677f810-7197-4557-9a34-6bcb375b674d","requestID":"0971d2a3452eb995f247b72c198e68ab"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.224147,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0971d2a3452eb995f247b72c198e68ab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969593,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"0971d2a3452eb995f247b72c198e68ab","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3677f810-7197-4557-9a34-6bcb375b674d","requestID":"0971d2a3452eb995f247b72c198e68ab"} experiment-1 | {"level":"info","message":"GET /experiments/3677f810-7197-4557-9a34-6bcb375b674d 200 14ms","method":"GET","requestID":"0971d2a3452eb995f247b72c198e68ab","responseTime":14,"status":200,"url":"/experiments/3677f810-7197-4557-9a34-6bcb375b674d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3677f810-7197-4557-9a34-6bcb375b674d HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0971d2a3452eb995f247b72c198e68ab"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4","level":"info","message":"auth send jwt","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"565d2b9df5df8fd7c36b799fe986a3c0","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3677f810-7197-4557-9a34-6bcb375b674d","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.304671,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"565d2b9df5df8fd7c36b799fe986a3c0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969593,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"565d2b9df5df8fd7c36b799fe986a3c0","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Attempting to finish experiment","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.059911,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969593,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1b82574e-8a40-4640-b5d3-cd6dc86881ec","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c4c6d740-8c54-4c10-866f-f99d91f0e28a","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9cec1a31-b373-4c77-9034-90d6093aca2e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9cec1a31-b373-4c77-9034-90d6093aca2e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9cec1a31-b373-4c77-9034-90d6093aca2e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"febe1ed2-170f-4f17-be3a-8c1149ece21d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.8399794} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"08f04e2fce8d5e09691eef0cfc392aaf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfe39abe-ded3-4a8d-894f-36c374800c09","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.84022} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"08f04e2fce8d5e09691eef0cfc392aaf","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a34dc58ddc1f6c65789881771cd8eb56","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"}}},"level":"info","message":"received a callback","requestID":"08f04e2fce8d5e09691eef0cfc392aaf"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a34dc58ddc1f6c65789881771cd8eb56","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"}}},"level":"info","message":"received a callback","requestID":"a34dc58ddc1f6c65789881771cd8eb56"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e 204 56ms","method":"DELETE","requestID":"17ff21c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":56,"status":204,"url":"/peerconnections/9cec1a31-b373-4c77-9034-90d6093aca2e"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3677f810-7197-4557-9a34-6bcb375b674d"},"level":"info","message":"Successfully finished experiment","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"180a4550-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1b82574e-8a40-4640-b5d3-cd6dc86881ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"960d6e5e-bcc7-42b3-a6a6-17fbf4198983","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.8991072} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.781546,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"180a4550-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"180a4550-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling 200 9ms","method":"POST","requestID":"180a4550-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"180c1a10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","method":"POST","requestID":"180a4550-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3677f810-7197-4557-9a34-6bcb375b674d': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3677f810-7197-4557-9a34-6bcb375b674d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"712bba7e-651f-4eef-815e-a7cda8e56e75","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.9108455} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"20cfc3e6-051f-4912-b32d-ff73ffffebe3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.9109497} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","method":"POST","requestID":"565d2b9df5df8fd7c36b799fe986a3c0","responseTime":21,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc4c6d740-8c54-4c10-866f-f99d91f0e28a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"430c43e6-ddfc-4fdf-a56a-27a815cb18c8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969593.9129984} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.319406,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"180c1a10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"180c1a10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"180c1a10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling 200 12ms","method":"POST","requestID":"180c1a10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3677f810-7197-4557-9a34-6bcb375b674d","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3677f810-7197-4557-9a34-6bcb375b674d HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"565d2b9df5df8fd7c36b799fe986a3c0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2146","request_time":"2.893","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"e30eb60a72c465371bfd8e3941bea47d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2146","request_time":"2.883","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"6a03f1ee12bad58545eac17fff41fb4e"} experiment-1 | {"level":"info","message":"DELETE /experiments/3677f810-7197-4557-9a34-6bcb375b674d 204 182ms","method":"DELETE","requestID":"565d2b9df5df8fd7c36b799fe986a3c0","responseTime":182,"status":204,"url":"/experiments/3677f810-7197-4557-9a34-6bcb375b674d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"08f04e2fce8d5e09691eef0cfc392aaf","responseTime":150,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.153","http_referrer":"","http_user_agent":"node-fetch","requestID":"08f04e2fce8d5e09691eef0cfc392aaf"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 150ms","method":"POST","requestID":"a34dc58ddc1f6c65789881771cd8eb56","responseTime":150,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4","level":"info","message":"auth send jwt","requestID":"c1a4170d66ec4bd31a60b18c298f7a21"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":2,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c4c6d740-8c54-4c10-866f-f99d91f0e28a' closed"} gateway-1 | {"time_local":"14/Mar/2025:16:26:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch","requestID":"a34dc58ddc1f6c65789881771cd8eb56"} device-1 | {"level":"info","message":"postDevices called","requestID":"c1a4170d66ec4bd31a60b18c298f7a21"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:34Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.778037,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c1a4170d66ec4bd31a60b18c298f7a21","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969593,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5M30.e2Frnlx4c5-u1SjYdYqEEPlQ_dImr89X-V7ZIDYz0O4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1b82574e-8a40-4640-b5d3-cd6dc86881ec' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"02336852-6067-46e7-8349-02e5ec5a65b3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.0392115} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f1badb6-7b93-4140-9442-b4e5b4be68fc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.0682938} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6e92b820-0bd1-442a-8186-546e6eef7928","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.0787747} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9799bf71-f9a0-4832-9f1d-7f75ef8aa8ce","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.0789957} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.078753692Z"}]},"request_id":"40106f1f-7b0d-45f6-9c60-22002ab68226","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.0837405} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"c1a4170d66ec4bd31a60b18c298f7a21"} gateway-1 | {"time_local":"14/Mar/2025:16:26:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c1a4170d66ec4bd31a60b18c298f7a21"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"c1a4170d66ec4bd31a60b18c298f7a21","responseTime":65,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5NH0.kn8E5aTo-hWBeAYc875OupAzzWgnbKK7pDfMs0xWvfs","level":"info","message":"auth send jwt","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17"} authentication-1 | {"level":"info","message":"GET /auth 200 27ms","method":"GET","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":27,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:34Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.920103,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969594,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5NH0.kn8E5aTo-hWBeAYc875OupAzzWgnbKK7pDfMs0xWvfs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c0d6fc2c-7030-4bfa-ab60-caa0af798028","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.133562} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a697d99f-2c2f-42fc-a17e-540b87de49b4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.163} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3869bb19-8116-4a75-a0de-763a1caaf51d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.1747828} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d3ad297-5ed6-4428-a332-5dd6b7cf0b37","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.175004} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.174761731Z"}]},"request_id":"46ced2ea-0ef1-4ef6-aee8-d2fd417e5221","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969594.180006} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17"} gateway-1 | {"time_local":"14/Mar/2025:16:26:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17"} device-1 | {"level":"info","message":"POST /devices? 201 68ms","method":"POST","requestID":"ce5fe9efc184b2b089f6d7bd11eb1c17","responseTime":68,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"84259c45dbf7c9a3278d7b7442d33595","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"84259c45dbf7c9a3278d7b7442d33595","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4439e4cd-b446-497e-bc49-27be2f17d404/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":"84259c45dbf7c9a3278d7b7442d33595"} device-1 | {"level":"info","message":"OPTIONS /devices/4439e4cd-b446-497e-bc49-27be2f17d404/websocket 200 1ms","method":"OPTIONS","requestID":"84259c45dbf7c9a3278d7b7442d33595","responseTime":1,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f46346c2cfd1b342090c80d28b2287b2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f46346c2cfd1b342090c80d28b2287b2","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"8f47203874e516664b12cb64d591ad0a"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8f47203874e516664b12cb64d591ad0a","responseTime":5,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/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":"f46346c2cfd1b342090c80d28b2287b2"} device-1 | {"level":"info","message":"OPTIONS /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/websocket 200 1ms","method":"OPTIONS","requestID":"f46346c2cfd1b342090c80d28b2287b2","responseTime":1,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"8f47203874e516664b12cb64d591ad0a"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"28b77c67fff1ad1e65c821fced4c060b"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.453583,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"28b77c67fff1ad1e65c821fced4c060b","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8f47203874e516664b12cb64d591ad0a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"28b77c67fff1ad1e65c821fced4c060b"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"8f47203874e516664b12cb64d591ad0a","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.051422,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"28b77c67fff1ad1e65c821fced4c060b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28b77c67fff1ad1e65c821fced4c060b","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"8f47203874e516664b12cb64d591ad0a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8f47203874e516664b12cb64d591ad0a"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/websocket 200 32ms","method":"POST","requestID":"8f47203874e516664b12cb64d591ad0a","responseTime":32,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"28b77c67fff1ad1e65c821fced4c060b"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/websocket 200 35ms","method":"POST","requestID":"28b77c67fff1ad1e65c821fced4c060b","responseTime":35,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"28b77c67fff1ad1e65c821fced4c060b"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"bd04cbe6947174e5a2cb221e85de00cc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bd04cbe6947174e5a2cb221e85de00cc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bd04cbe6947174e5a2cb221e85de00cc"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.664194,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bd04cbe6947174e5a2cb221e85de00cc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"bd04cbe6947174e5a2cb221e85de00cc","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.078753692Z"}]},"request_id":"e50b1aad-f751-45b3-94da-717395533032","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.5470192} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bd04cbe6947174e5a2cb221e85de00cc","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bd04cbe6947174e5a2cb221e85de00cc"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd04cbe6947174e5a2cb221e85de00cc"} device-1 | {"level":"info","message":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? 200 9ms","method":"GET","requestID":"bd04cbe6947174e5a2cb221e85de00cc","responseTime":9,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"91539dcd36d33af386fb93141242c92b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"91539dcd36d33af386fb93141242c92b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"91539dcd36d33af386fb93141242c92b"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.690976,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"91539dcd36d33af386fb93141242c92b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"91539dcd36d33af386fb93141242c92b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.174761731Z"}]},"request_id":"9729a8da-e8ba-4259-8d5d-cb7dde6182cb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.5616336} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"91539dcd36d33af386fb93141242c92b","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"91539dcd36d33af386fb93141242c92b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"91539dcd36d33af386fb93141242c92b"} device-1 | {"level":"info","message":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? 200 10ms","method":"GET","requestID":"91539dcd36d33af386fb93141242c92b","responseTime":10,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b7fa42863255bda082d8b7ff8ec9318b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.67776,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b7fa42863255bda082d8b7ff8ec9318b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"b7fa42863255bda082d8b7ff8ec9318b","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to run experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to book experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully booked experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.605335,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.702223,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.078753692Z"}]},"request_id":"2621e655-2c2b-45d1-8446-ce665a120239","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.6262896} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.174761731Z"}]},"request_id":"08819ff4-4342-4361-9c04-0b9c2d2084c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.6294715} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? 200 11ms","method":"GET","requestID":"19aa39b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? 200 41ms","method":"GET","requestID":"19aa60c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":41,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Setting up experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully locked booking for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to update booking for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully updated booking for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully set up experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19c14420-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.939272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully running experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686862,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9156a604-fd8c-4d60-934f-3efc57326d30","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.7757914} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.074162,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c14420-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 15ms","method":"POST","requestID":"19c14420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.174761731Z"}]},"request_id":"db48f135-667b-4a26-bbf2-f50024be3f09","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.786686} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.078753692Z"}]},"request_id":"d6c08d8d-d42a-4a7d-96cc-589b92a5bbe6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.7891173} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19c14420-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling 200 20ms","method":"POST","requestID":"19c14420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":20,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? 200 24ms","method":"GET","requestID":"19c0f600-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19c4c690-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? 200 27ms","method":"GET","requestID":"19c0cef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19c589e0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b3b18ac-f245-43c2-866c-54005e9ea336","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8007777} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.534725,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e197cf7c-0ada-4d24-be00-a134874ce13a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8019881} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c4c690-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"19c4c690-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.390575,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c589e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"19c589e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19c4c690-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling 200 13ms","method":"POST","requestID":"19c4c690-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19c589e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling 200 9ms","method":"POST","requestID":"19c589e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffb70174c-2a9b-4031-8e08-1735e00d6c3b#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffb70174c-2a9b-4031-8e08-1735e00d6c3b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"25da9f41-b1af-4b37-8899-30bbcc477175","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8086026} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c866a92-9181-4d38-94a8-fd27f13f7912","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.808862} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19c73790-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"b7fa42863255bda082d8b7ff8ec9318b","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"57124ead-858d-4f26-8f3b-14bd64bd5de3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8141851} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.527866,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c73790-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"19c73790-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.249","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 246ms","method":"POST","requestID":"b7fa42863255bda082d8b7ff8ec9318b","responseTime":246,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19c73790-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling 200 9ms","method":"POST","requestID":"19c73790-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Building connection plan","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} 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":"d417e5ac-f08a-4971-bd92-e7b83e7a53eb"},{"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":"2c480235-bf2e-45aa-9115-d922ff80b03b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6fbc6411-bce0-48be-b0dc-0a2613f964c4"}]},"level":"info","message":"Built pairwise service configurations","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} 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/4439e4cd-b446-497e-bc49-27be2f17d404"},{"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/8ee0e302-180c-4910-b8a7-ed80cd2b6a19"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"77b6d6769ed25d225625fa8d3811a55d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"77b6d6769ed25d225625fa8d3811a55d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"77b6d6769ed25d225625fa8d3811a55d"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.610205,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.484834,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"77b6d6769ed25d225625fa8d3811a55d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"77b6d6769ed25d225625fa8d3811a55d","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.078753692Z"}]},"request_id":"5744bc64-f511-4976-b9b7-1b6d2fb8e40b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8283126} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"77b6d6769ed25d225625fa8d3811a55d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"77b6d6769ed25d225625fa8d3811a55d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"77b6d6769ed25d225625fa8d3811a55d"} device-1 | {"level":"info","message":"GET /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19? 200 9ms","method":"GET","requestID":"77b6d6769ed25d225625fa8d3811a55d","responseTime":9,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a63aacbf-7660-4b67-b854-ff31a607210b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8317375} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1fd87fc5-f9d1-4c47-8f10-c78a8256a41f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8318782} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE","level":"info","message":"auth send jwt","requestID":"b29a9b6b37c84ff6405c0065a4c94e17"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b29a9b6b37c84ff6405c0065a4c94e17","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b29a9b6b37c84ff6405c0065a4c94e17"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704326,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b29a9b6b37c84ff6405c0065a4c94e17","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969596,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5Nn0.1H-Vlv0BRki8ysU9GfkH8XNMOjmX88PARUbhpKOyTVE"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b29a9b6b37c84ff6405c0065a4c94e17","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:34.174761731Z"}]},"request_id":"00c7049a-9f7b-4d88-8e96-21f9977ae973","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8418546} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b29a9b6b37c84ff6405c0065a4c94e17","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7'","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7'","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 24ms","method":"POST","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"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","requestID":"b29a9b6b37c84ff6405c0065a4c94e17"} device-1 | {"level":"info","message":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? 200 11ms","method":"GET","requestID":"b29a9b6b37c84ff6405c0065a4c94e17","responseTime":11,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4439e4cd-b446-497e-bc49-27be2f17d404? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b29a9b6b37c84ff6405c0065a4c94e17"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"19c90c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"b7fa42863255bda082d8b7ff8ec9318b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19d05f50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e94974f-eafc-4126-8753-74b84abbb407","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.873031} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":10.232143,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19d05f50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","method":"POST","requestID":"19d05f50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/authorize"} device-1 | {"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19d05f50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling 200 19ms","method":"POST","requestID":"19d05f50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":19,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19d393a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1665bec-aa11-46c7-b9f9-5eb353030e59","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969596.8972206} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.212238,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19d393a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"19d393a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19d393a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling 200 12ms","method":"POST","requestID":"19d393a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling"} device-1 | {"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 7941985856911546716 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:UE4a\r\na=ice-pwd:F7G+BoBYENqhNger8yoNMHew\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D9:28:4A:CB:D6:64:D2:92:D3:BC:4B:3E:31:24:7D:3B:19:0B:BE:00:4A:52:F1:FC:E9:B0:1D:04:38:7A:7E:21\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 6263347841033168602 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Icfb\r\na=ice-pwd:wF9oro5S/+jXFFZZpd6+LluQ\r\na=ice-options:trickle\r\na=fingerprint:sha-256 43:F9:FC:A1:B3:F8:81:FC:09:48:EC:C7:D3:2A:5D:5F:98:77:A7:A8:2F:F3:7E:72:A4:8D:6F:46:68:B2:74:13\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:2417786767 1 udp 2113937151 6e173caf-7610-4b5f-821b-df1c3e5e09e0.local 33456 typ host generation 0 ufrag Icfb network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404'"} device-1 | {"content":{"candidate":"candidate:1059326594 1 udp 2113937151 022fe34d-c062-4c68-b339-5ce492307ea0.local 56210 typ host generation 0 ufrag UE4a network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"65fc898c3150b335f1253ed0f5b9dbdc","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"65fc898c3150b335f1253ed0f5b9dbdc","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404"},{"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/8ee0e302-180c-4910-b8a7-ed80cd2b6a19"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"}}},"level":"info","message":"received a callback","requestID":"65fc898c3150b335f1253ed0f5b9dbdc"} device-1 | {"device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"65fc898c3150b335f1253ed0f5b9dbdc","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"65fc898c3150b335f1253ed0f5b9dbdc"} device-1 | {"device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f99bdd4efdb68ac87e5aa47864e6f13a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f99bdd4efdb68ac87e5aa47864e6f13a","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/4439e4cd-b446-497e-bc49-27be2f17d404"},{"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/8ee0e302-180c-4910-b8a7-ed80cd2b6a19"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"}}},"level":"info","message":"received a callback","requestID":"f99bdd4efdb68ac87e5aa47864e6f13a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"19eb1340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F61b46987-bea0-4bc8-821c-8e6bd02aeea7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8ac6a11a-3017-4105-9d81-b116f59d4c15","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.048354} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.182788,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19eb1340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","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","method":"POST","requestID":"19eb1340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"19eb1340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7 200 7ms","method":"GET","requestID":"19eb1340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 76ms","method":"POST","requestID":"f99bdd4efdb68ac87e5aa47864e6f13a","responseTime":76,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.078","http_referrer":"","http_user_agent":"node-fetch","requestID":"f99bdd4efdb68ac87e5aa47864e6f13a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19f28d50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg","level":"info","message":"auth send jwt","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bd0704f4-c892-4d81-b334-5630a8870cc3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.097908} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.724434,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19f28d50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"19f28d50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.676161,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c0649d11a8cfb9b96fcc424f18a7b19f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969597,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19f28d50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling 200 10ms","method":"POST","requestID":"19f28d50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"19f46210-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ba0ad48c-c6d9-4818-a7fc-a089de019623","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.109702} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f"} experiment-1 | {"level":"info","message":"GET /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b 200 12ms","method":"GET","requestID":"c0649d11a8cfb9b96fcc424f18a7b19f","responseTime":12,"status":200,"url":"/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.758262,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19f46210-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"19f46210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg","level":"info","message":"auth send jwt","requestID":"e3c50d6fcda120c2273cffcd283949f7"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"e3c50d6fcda120c2273cffcd283949f7","responseTime":26,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"19f46210-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling 200 34ms","method":"POST","requestID":"19f46210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","requestID":"e3c50d6fcda120c2273cffcd283949f7"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.71433,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e3c50d6fcda120c2273cffcd283949f7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969597,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e3c50d6fcda120c2273cffcd283949f7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Attempting to finish experiment","requestID":"e3c50d6fcda120c2273cffcd283949f7"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.677001,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969597,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","device":"4439e4cd-b446-497e-bc49-27be2f17d404","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7","device":"8ee0e302-180c-4910-b8a7-ed80cd2b6a19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"4532e776cef831382dfb9b8c44f7d790","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404"},{"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/8ee0e302-180c-4910-b8a7-ed80cd2b6a19"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"}}},"level":"info","message":"received a callback","requestID":"4532e776cef831382dfb9b8c44f7d790"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"4532e776cef831382dfb9b8c44f7d790","responseTime":25,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"540c69b5c23dccd03360439bde5a564a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"540c69b5c23dccd03360439bde5a564a","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404"},{"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/8ee0e302-180c-4910-b8a7-ed80cd2b6a19"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"}}},"level":"info","message":"received a callback","requestID":"540c69b5c23dccd03360439bde5a564a"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F61b46987-bea0-4bc8-821c-8e6bd02aeea7': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F61b46987-bea0-4bc8-821c-8e6bd02aeea7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"c4d52d7e-524a-44ff-be52-7f8262d1b766","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.1606836} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0e4d36c2-60c1-45cb-88ed-b324792cdd10","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.1851513} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"61b46987-bea0-4bc8-821c-8e6bd02aeea7","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7 204 93ms","method":"DELETE","requestID":"19facab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":93,"status":204,"url":"/peerconnections/61b46987-bea0-4bc8-821c-8e6bd02aeea7"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"},"level":"info","message":"Successfully finished experiment","requestID":"e3c50d6fcda120c2273cffcd283949f7"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a0b4570-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4439e4cd-b446-497e-bc49-27be2f17d404","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"854f6678-411b-4bcd-80d7-436d1098c5a6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.263748} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.683893,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1a0b4570-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1a0b4570-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a0b4570-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling 200 15ms","method":"POST","requestID":"1a0b4570-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/4439e4cd-b446-497e-bc49-27be2f17d404/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffb70174c-2a9b-4031-8e08-1735e00d6c3b': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ffb70174c-2a9b-4031-8e08-1735e00d6c3b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"7c5020b7-73bb-4ef5-ad01-714e839b0280","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.2716622} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"59f9c71a-b083-4b88-95fb-1b00502a1f2e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.2717872} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","method":"POST","requestID":"e3c50d6fcda120c2273cffcd283949f7","responseTime":19,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1a0e0490-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ee0e302-180c-4910-b8a7-ed80cd2b6a19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c4ad194a-72f9-4e02-bf45-eabd6f90716e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.2774246} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.277638,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1a0e0490-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1a0e0490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1a0e0490-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling 200 8ms","method":"POST","requestID":"1a0e0490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b","requestID":"e3c50d6fcda120c2273cffcd283949f7"} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.216","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3c50d6fcda120c2273cffcd283949f7"} experiment-1 | {"level":"info","message":"DELETE /experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b 204 189ms","method":"DELETE","requestID":"e3c50d6fcda120c2273cffcd283949f7","responseTime":189,"status":204,"url":"/experiments/fb70174c-2a9b-4031-8e08-1735e00d6c3b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"4532e776cef831382dfb9b8c44f7d790","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.171","http_referrer":"","http_user_agent":"node-fetch","requestID":"4532e776cef831382dfb9b8c44f7d790"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"540c69b5c23dccd03360439bde5a564a","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.172","http_referrer":"","http_user_agent":"node-fetch","requestID":"540c69b5c23dccd03360439bde5a564a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg","level":"info","message":"auth send jwt","requestID":"024a7cb74af111b6de12989d5f18d860"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"024a7cb74af111b6de12989d5f18d860"} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2578","request_time":"0.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":"696f50d1ebabe60707e2c22575c23f25"} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2580","request_time":"0.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":"be5f272f1998f68b2a9882232511177b"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.885114,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"024a7cb74af111b6de12989d5f18d860","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969597,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8ee0e302-180c-4910-b8a7-ed80cd2b6a19' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6d08d13d-9ae9-4ca2-b386-0a78d9f0aed6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.3467314} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4439e4cd-b446-497e-bc49-27be2f17d404' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"783a7e0d-a194-4fc9-a7f0-b9eae6e3ccc5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.350953} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"e9d49f0f-958d-4781-814c-f36983fc7a0b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.3602974} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3657d6d6-8507-401d-818b-b51b49b22d66","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.3605227} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.360272971Z"}]},"request_id":"1891a7fc-8277-4c64-8356-6c429a5a4612","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.36371} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"024a7cb74af111b6de12989d5f18d860"} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"024a7cb74af111b6de12989d5f18d860"} device-1 | {"level":"info","message":"POST /devices? 201 31ms","method":"POST","requestID":"024a7cb74af111b6de12989d5f18d860","responseTime":31,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg","level":"info","message":"auth send jwt","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.755917,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969597,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5N30.t3HI9aN4xnvfUAKPncPQXPBAZ99BKZPFuFFXloZoJlg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"41acae62-c4be-42a3-b656-975621754ae7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.382738} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcaf2683-260f-44eb-8962-2ca0b7496524","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.38635} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"4226d6a9-f1e2-4557-810e-89397eb8c11a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.3997476} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0da90f2e-df94-4367-bf1d-3ce59d67d9d3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.4000018} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.399722930Z"}]},"request_id":"10e42ed7-d165-43e7-a5ea-d51d28ce0af0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969597.4278271} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41"} gateway-1 | {"time_local":"14/Mar/2025:16:26:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"8952a3a5e4f9ae632c46d9c5e3265c41","responseTime":60,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3c362bda5426936fcbfca9a5b53f43fa","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3c362bda5426936fcbfca9a5b53f43fa","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/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":"3c362bda5426936fcbfca9a5b53f43fa"} device-1 | {"level":"info","message":"OPTIONS /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/websocket 200 1ms","method":"OPTIONS","requestID":"3c362bda5426936fcbfca9a5b53f43fa","responseTime":1,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"a3e4d359b88f557a810cc09d1cd83dee"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a3e4d359b88f557a810cc09d1cd83dee","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a3e4d359b88f557a810cc09d1cd83dee"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.793939,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a3e4d359b88f557a810cc09d1cd83dee","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"a3e4d359b88f557a810cc09d1cd83dee","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8527a34ebc08c9a22a4bb59ed44c8df0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8527a34ebc08c9a22a4bb59ed44c8df0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/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":"8527a34ebc08c9a22a4bb59ed44c8df0"} device-1 | {"level":"info","message":"OPTIONS /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/websocket 200 0ms","method":"OPTIONS","requestID":"8527a34ebc08c9a22a4bb59ed44c8df0","responseTime":0,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"a6dd294f0f30660a3ec4bcf948530a95"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a6dd294f0f30660a3ec4bcf948530a95","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a6dd294f0f30660a3ec4bcf948530a95"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a3e4d359b88f557a810cc09d1cd83dee"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/websocket 200 41ms","method":"POST","requestID":"a3e4d359b88f557a810cc09d1cd83dee","responseTime":41,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a3e4d359b88f557a810cc09d1cd83dee"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.821443,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a6dd294f0f30660a3ec4bcf948530a95","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a6dd294f0f30660a3ec4bcf948530a95","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a6dd294f0f30660a3ec4bcf948530a95"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.023","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a6dd294f0f30660a3ec4bcf948530a95"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/websocket 200 17ms","method":"POST","requestID":"a6dd294f0f30660a3ec4bcf948530a95","responseTime":17,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"cf5014dc2a8048b83953a26ad6369d66"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cf5014dc2a8048b83953a26ad6369d66","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cf5014dc2a8048b83953a26ad6369d66"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.690318,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cf5014dc2a8048b83953a26ad6369d66","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cf5014dc2a8048b83953a26ad6369d66","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.360272971Z"}]},"request_id":"749284eb-8635-4543-8667-74a9a3e0665b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.7299771} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cf5014dc2a8048b83953a26ad6369d66","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cf5014dc2a8048b83953a26ad6369d66"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf5014dc2a8048b83953a26ad6369d66"} device-1 | {"level":"info","message":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? 200 9ms","method":"GET","requestID":"cf5014dc2a8048b83953a26ad6369d66","responseTime":9,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"aaabb1e16bb9db9944d060e83b5f3199"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"aaabb1e16bb9db9944d060e83b5f3199","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"aaabb1e16bb9db9944d060e83b5f3199"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.84481,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"aaabb1e16bb9db9944d060e83b5f3199","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"aaabb1e16bb9db9944d060e83b5f3199","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.399722930Z"}]},"request_id":"dbf05a28-1224-425a-9921-7df994a8a73e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.7445767} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"aaabb1e16bb9db9944d060e83b5f3199","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"aaabb1e16bb9db9944d060e83b5f3199"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"aaabb1e16bb9db9944d060e83b5f3199"} device-1 | {"level":"info","message":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? 200 13ms","method":"GET","requestID":"aaabb1e16bb9db9944d060e83b5f3199","responseTime":13,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"af89523c3dff8353ece1a8b729dd81b9"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"af89523c3dff8353ece1a8b729dd81b9","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"af89523c3dff8353ece1a8b729dd81b9"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.640136,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"af89523c3dff8353ece1a8b729dd81b9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"af89523c3dff8353ece1a8b729dd81b9","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to run experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to book experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully booked experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.431182,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.788598,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.360272971Z"}]},"request_id":"623873a9-d7f9-46ab-9776-df1ef5c6596f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.7903454} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.399722930Z"}]},"request_id":"244a798a-5b6c-4494-b614-1dfbe203da39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.7911692} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? 200 13ms","method":"GET","requestID":"1b8cdc60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? 200 11ms","method":"GET","requestID":"1b8d2a80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Setting up experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully locked booking for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to update booking for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully updated booking for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully set up experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1b9b8260-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:38832","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.893213,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully running experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.697506,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.399722930Z"}]},"request_id":"1a83f645-a1ab-406c-afa8-6ed9b5b80b25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.8871894} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.360272971Z"}]},"request_id":"54b4f25d-0124-416a-8675-0c1c4a822650","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.8880076} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c26e4097-49f2-45c2-a1d7-994cf7129647","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.8890057} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.797756,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b9b8260-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1b9b8260-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96e9069a-4dc7-4775-a24b-c5545adb18ab#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96e9069a-4dc7-4775-a24b-c5545adb18ab","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"04f8f12a-7525-433b-ba23-9c3fd9b84998","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.8924322} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bc18b157-c9a7-4f8a-9751-20eab7bac361","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.892604} device-1 | {"level":"info","message":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? 200 16ms","method":"GET","requestID":"1b9b5b50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":16,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? 200 18ms","method":"GET","requestID":"1b9b3440-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"af89523c3dff8353ece1a8b729dd81b9","responseTime":10,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1b9b8260-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling 200 17ms","method":"POST","requestID":"1b9b8260-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1b9e4180-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1ba28740-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"361295d1-c8b5-49a7-a40a-6b53818e7523","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.924675} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.61007,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"af89523c3dff8353ece1a8b729dd81b9"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1b9e4180-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 174ms","method":"POST","requestID":"af89523c3dff8353ece1a8b729dd81b9","responseTime":174,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"1b9e4180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40883e13-ac54-4fe7-b2db-d8a9087d74b1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.928364} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.468594,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ba28740-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1b9e4180-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1ba28740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling 200 34ms","method":"POST","requestID":"1b9e4180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1ba3e6d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1ba28740-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling 200 11ms","method":"POST","requestID":"1ba28740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.789435,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"17fdbc04f6a02bddd925d3b281f0dcf5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1a191341-56ba-4849-a0b6-5df5e924fee9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.9375544} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.664905,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ba3e6d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1ba3e6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.360272971Z"}]},"request_id":"0d67d86f-dd34-47cb-a322-26e24efc631f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.9423518} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1ba3e6d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling 200 10ms","method":"POST","requestID":"1ba3e6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5","responseTime":3,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Building connection plan","requestID":"af89523c3dff8353ece1a8b729dd81b9"} 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":"556fd154-1bd1-447c-a32f-5a00c9ea0e98"},{"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":"b08c2b28-745b-435e-aebb-e7e25d2abd54"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"30e53111-ecf5-481b-bc52-b5dec97b632f"}]},"level":"info","message":"Built pairwise service configurations","requestID":"af89523c3dff8353ece1a8b729dd81b9"} 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/e9f2d166-6ae9-4080-a524-231f9243aad2"},{"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/2b33c744-ef34-4a09-b268-0e9c3dd8a080"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"af89523c3dff8353ece1a8b729dd81b9"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5"} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5"} device-1 | {"level":"info","message":"GET /devices/e9f2d166-6ae9-4080-a524-231f9243aad2? 200 12ms","method":"GET","requestID":"17fdbc04f6a02bddd925d3b281f0dcf5","responseTime":12,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2?"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY","level":"info","message":"auth send jwt","requestID":"681b6cbdc40583b1b68686b2778b266d"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"681b6cbdc40583b1b68686b2778b266d","responseTime":26,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.208653,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"681b6cbdc40583b1b68686b2778b266d"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738095,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:39Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"681b6cbdc40583b1b68686b2778b266d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969599,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTU5OX0.1YdELBtIaoXd4Z-WjgZdlRNtT6KPrDGDzBPdP_d51mY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"681b6cbdc40583b1b68686b2778b266d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:37.399722930Z"}]},"request_id":"9181255f-3cb1-403f-ae1c-d4e03de4d765","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.9857116} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"681b6cbdc40583b1b68686b2778b266d","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"f2659888-30c4-4701-9714-280a773e9ba9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.9898913} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"681b6cbdc40583b1b68686b2778b266d"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e84a92eb-963d-4289-af44-c6c33c50e729","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969599.9901938} gateway-1 | {"time_local":"14/Mar/2025:16:26:39 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"681b6cbdc40583b1b68686b2778b266d"} device-1 | {"level":"info","message":"GET /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080? 200 17ms","method":"GET","requestID":"681b6cbdc40583b1b68686b2778b266d","responseTime":17,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374'","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374'","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 100ms","method":"POST","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":100,"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","requestID":"1ba96510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"af89523c3dff8353ece1a8b729dd81b9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1bc04870-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} device-1 | {"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a9220c08-f75e-44a0-95e3-30ae99418879","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.1239364} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.732273,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bc04870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1bc04870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1bc04870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling 200 9ms","method":"POST","requestID":"1bc04870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1bc1cf10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"80acb864-e438-4075-8066-8feefb740529","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.133014} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.146986,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bc1cf10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1bc1cf10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1bc1cf10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling 200 7ms","method":"POST","requestID":"1bc1cf10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling"} device-1 | {"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 5563893609115144533 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:XxrM\r\na=ice-pwd:kh5Ha8kuKL1ixdeHAThDpovr\r\na=ice-options:trickle\r\na=fingerprint:sha-256 AB:F3:88:3D:90:23:4C:08:B2:FB:AA:6C:02:F9:6B:50:C7:63:C4:56:63:1B:DB:C6:EC:88:A9:72:33:E3:A7:9C\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 7388893318913807235 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:5gUq\r\na=ice-pwd:8XhhCaR9sn1FGUuFFmiq5F5E\r\na=ice-options:trickle\r\na=fingerprint:sha-256 82:B0:6E:D8:B9:8C:3F:A3:00:29:08:A4:FB:33:E4:CE:28:EB:C2:9B:BC:1C:8F:D4:E5:68:4C:87:79:F0:6C:03\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3262482245 1 udp 2113937151 c00acaa8-0b75-462a-a55b-96853c18e150.local 55097 typ host generation 0 ufrag 5gUq network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2'"} device-1 | {"content":{"candidate":"candidate:1217737557 1 udp 2113937151 f9c22276-3d90-4ef0-b4ae-56e086cffd6d.local 48871 typ host generation 0 ufrag XxrM network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e0d7b0c38ecaeea45ddaa57d79d53bf5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e0d7b0c38ecaeea45ddaa57d79d53bf5","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2"},{"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/2b33c744-ef34-4a09-b268-0e9c3dd8a080"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"}}},"level":"info","message":"received a callback","requestID":"e0d7b0c38ecaeea45ddaa57d79d53bf5"} device-1 | {"device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e0d7b0c38ecaeea45ddaa57d79d53bf5","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"e0d7b0c38ecaeea45ddaa57d79d53bf5"} device-1 | {"device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"83e6ace188326c51bed72ed9408224ec","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"83e6ace188326c51bed72ed9408224ec","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/e9f2d166-6ae9-4080-a524-231f9243aad2"},{"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/2b33c744-ef34-4a09-b268-0e9c3dd8a080"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"}}},"level":"info","message":"received a callback","requestID":"83e6ace188326c51bed72ed9408224ec"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1bdd4650-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F425b081e-4e98-4c11-ace5-f1eb137b8374","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7fbd653-3950-45dc-b24b-e9dc9e28b914","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.3135433} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.303137,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bdd4650-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","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","method":"POST","requestID":"1bdd4650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1bdd4650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374 200 8ms","method":"GET","requestID":"1bdd4650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U","level":"info","message":"auth send jwt","requestID":"a14d7dd9beb7aef3511732379142b17f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a14d7dd9beb7aef3511732379142b17f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","requestID":"a14d7dd9beb7aef3511732379142b17f"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.728137,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a14d7dd9beb7aef3511732379142b17f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969600,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a14d7dd9beb7aef3511732379142b17f","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 57ms","method":"POST","requestID":"83e6ace188326c51bed72ed9408224ec","responseTime":57,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.084","http_referrer":"","http_user_agent":"node-fetch","requestID":"83e6ace188326c51bed72ed9408224ec"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1be583b0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","requestID":"a14d7dd9beb7aef3511732379142b17f"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a14d7dd9beb7aef3511732379142b17f"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} experiment-1 | {"level":"info","message":"GET /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab 200 9ms","method":"GET","requestID":"a14d7dd9beb7aef3511732379142b17f","responseTime":9,"status":200,"url":"/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f761b975-9ace-4ae7-8f53-c3eb66c21b0e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.3674865} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.485854,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1be583b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1be583b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U","level":"info","message":"auth send jwt","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d5835363b5dbf615a4cac18bebe8ea86","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1be583b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling 200 8ms","method":"POST","requestID":"1be583b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.718,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1be70a50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d5835363b5dbf615a4cac18bebe8ea86","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969600,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d5835363b5dbf615a4cac18bebe8ea86","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e2f840ad-a4a8-4529-9015-71cd8b09e7d9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.4016705} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.442786,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Attempting to finish experiment","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1be70a50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"1be70a50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1be70a50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling 200 33ms","method":"POST","requestID":"1be70a50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.465475,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969600,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","device":"e9f2d166-6ae9-4080-a524-231f9243aad2","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374","device":"2b33c744-ef34-4a09-b268-0e9c3dd8a080","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F425b081e-4e98-4c11-ace5-f1eb137b8374': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F425b081e-4e98-4c11-ace5-f1eb137b8374","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"8a657f9d-6e4e-4aa2-a610-2799671c1d66","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.4184651} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dcedc439-6cc6-4068-ba34-9d123916d8b1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.418657} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1abe60f4b42c1cd3cf29797c7966828e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1abe60f4b42c1cd3cf29797c7966828e","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"056f8c129e411d4a81d16e094209f14b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"}}},"level":"info","message":"received a callback","requestID":"1abe60f4b42c1cd3cf29797c7966828e"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"056f8c129e411d4a81d16e094209f14b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"}}},"level":"info","message":"received a callback","requestID":"056f8c129e411d4a81d16e094209f14b"} device-1 | {"data":{"peerconnection":"425b081e-4e98-4c11-ace5-f1eb137b8374","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374 204 62ms","method":"DELETE","requestID":"1bebc540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":62,"status":204,"url":"/peerconnections/425b081e-4e98-4c11-ace5-f1eb137b8374"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"},"level":"info","message":"Successfully finished experiment","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1bfb0780-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe9f2d166-6ae9-4080-a524-231f9243aad2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67f3da2d-fc0a-484b-9cf4-bd33afb8e7f0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.508251} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.562893,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bfb0780-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1bfb0780-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1bfb0780-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling 200 8ms","method":"POST","requestID":"1bfb0780-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/e9f2d166-6ae9-4080-a524-231f9243aad2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1bfc8e20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96e9069a-4dc7-4775-a24b-c5545adb18ab': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F96e9069a-4dc7-4775-a24b-c5545adb18ab","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"0eeab21e-8b3e-4910-aa16-b9ba39715163","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.5150616} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bb048eb-3882-41d4-b2d4-cd33812157f5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.5154166} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"d5835363b5dbf615a4cac18bebe8ea86","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2b33c744-ef34-4a09-b268-0e9c3dd8a080","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"be8721ce-2b13-474f-b953-f8c290158b8b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.5196884} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.726323,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1bfc8e20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1bfc8e20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1bfc8e20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling 200 29ms","method":"POST","requestID":"1bfc8e20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.223","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d5835363b5dbf615a4cac18bebe8ea86"} experiment-1 | {"level":"info","message":"DELETE /experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab 204 220ms","method":"DELETE","requestID":"d5835363b5dbf615a4cac18bebe8ea86","responseTime":220,"status":204,"url":"/experiments/96e9069a-4dc7-4775-a24b-c5545adb18ab"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 173ms","method":"POST","requestID":"1abe60f4b42c1cd3cf29797c7966828e","responseTime":173,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"1abe60f4b42c1cd3cf29797c7966828e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 172ms","method":"POST","requestID":"056f8c129e411d4a81d16e094209f14b","responseTime":172,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.176","http_referrer":"","http_user_agent":"node-fetch","requestID":"056f8c129e411d4a81d16e094209f14b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U","level":"info","message":"auth send jwt","requestID":"0d7005b4e5a053bc513a23beccf0a665"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"0d7005b4e5a053bc513a23beccf0a665"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.843461,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2578","request_time":"0.909","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5369afb0eb498dd463065fdf011d28bf"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0d7005b4e5a053bc513a23beccf0a665","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969600,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2580","request_time":"0.891","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9ee917648bd06932172f85cb6138f174"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/e9f2d166-6ae9-4080-a524-231f9243aad2' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2b33c744-ef34-4a09-b268-0e9c3dd8a080' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"028f7fbc-3558-435a-a06a-3668e2ce8959","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6209958} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":6,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c7870dc5-86ec-4cab-9005-7b3ae4babc86","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6246498} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"0a15adc4-6a10-4af7-94da-58b17a785ebe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6343684} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"621b9377-4508-4d76-a863-96a9c7641375","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6344726} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.634349207Z"}]},"request_id":"f4ff54db-65ba-43ca-8587-73c02770102e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.637893} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0d7005b4e5a053bc513a23beccf0a665"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0d7005b4e5a053bc513a23beccf0a665"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"0d7005b4e5a053bc513a23beccf0a665","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U","level":"info","message":"auth send jwt","requestID":"2afbd248b1ad0f07df8987e747e03147"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2afbd248b1ad0f07df8987e747e03147"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.646473,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2afbd248b1ad0f07df8987e747e03147","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969600,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMH0.SbValSz1pjAfuwdOLpiNYz_GMVZ2T4kMvAqF5Q62b7U"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"faf3e3d7-6936-4e72-94dc-ea367c119b11","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6573083} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e69cf5b1-a46d-4b30-b5ac-32bf53863193","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6615064} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"5ef2dec0-7312-4bef-9f88-595d61e96a54","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6943936} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"58713eff-f07a-41ed-b101-a06f2d7ff27b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.694526} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":36,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"205495c2-a1b0-4960-a982-b33a2aee2ad5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969600.6989422} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2afbd248b1ad0f07df8987e747e03147"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"2afbd248b1ad0f07df8987e747e03147","responseTime":57,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2afbd248b1ad0f07df8987e747e03147"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMX0.yjej0wIqMzlwv38ctTp4c-pFoloCh2zZ5tWecHi_YY0","level":"info","message":"auth send jwt","requestID":"0e73598a23b62f87cf1dfb43a936e326"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0e73598a23b62f87cf1dfb43a936e326"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:41Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.86065,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0e73598a23b62f87cf1dfb43a936e326","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969601,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMX0.yjej0wIqMzlwv38ctTp4c-pFoloCh2zZ5tWecHi_YY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"5d5fed17-6210-4180-9e98-8dd8c3037247","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969601.6053088} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2c60f02b-a246-44e5-b223-54edbc786ecd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969601.609142} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"b1dfd9f4-3c9f-426e-a8d1-b60de11a456e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969601.6255777} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0e73598a23b62f87cf1dfb43a936e326"} gateway-1 | {"time_local":"14/Mar/2025:16:26:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"0e73598a23b62f87cf1dfb43a936e326"} device-1 | {"level":"info","message":"PATCH /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46 200 51ms","method":"PATCH","requestID":"0e73598a23b62f87cf1dfb43a936e326","responseTime":51,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMX0.yjej0wIqMzlwv38ctTp4c-pFoloCh2zZ5tWecHi_YY0","level":"info","message":"auth send jwt","requestID":"590e1dd4c207725b8b0f7e5d032ccb94"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"590e1dd4c207725b8b0f7e5d032ccb94","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"590e1dd4c207725b8b0f7e5d032ccb94"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:41Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.63003,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"590e1dd4c207725b8b0f7e5d032ccb94","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969601,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMX0.yjej0wIqMzlwv38ctTp4c-pFoloCh2zZ5tWecHi_YY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"590e1dd4c207725b8b0f7e5d032ccb94","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"590e1dd4c207725b8b0f7e5d032ccb94"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/websocket 200 15ms","method":"POST","requestID":"590e1dd4c207725b8b0f7e5d032ccb94","responseTime":15,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"590e1dd4c207725b8b0f7e5d032ccb94"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2a29b821707675e1aedb663e1856cf7f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2a29b821707675e1aedb663e1856cf7f","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/websocket 200 1ms","method":"OPTIONS","requestID":"2a29b821707675e1aedb663e1856cf7f","responseTime":1,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/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":"2a29b821707675e1aedb663e1856cf7f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMn0.mjkhaDW6fvHu4CfYcv7M--DOP9o3V_aqbrsdN2S8sEs","level":"info","message":"auth send jwt","requestID":"cb436154406b60ef013420cd82e95965"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cb436154406b60ef013420cd82e95965","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cb436154406b60ef013420cd82e95965"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:42Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.260349,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cb436154406b60ef013420cd82e95965","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969602,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwMn0.mjkhaDW6fvHu4CfYcv7M--DOP9o3V_aqbrsdN2S8sEs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"cb436154406b60ef013420cd82e95965","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cb436154406b60ef013420cd82e95965"} gateway-1 | {"time_local":"14/Mar/2025:16:26:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.031","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cb436154406b60ef013420cd82e95965"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/websocket 200 26ms","method":"POST","requestID":"cb436154406b60ef013420cd82e95965","responseTime":26,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng","level":"info","message":"auth send jwt","requestID":"620ef016f3657280ebd849b68b39fd6a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"620ef016f3657280ebd849b68b39fd6a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"620ef016f3657280ebd849b68b39fd6a"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.371691,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"620ef016f3657280ebd849b68b39fd6a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"620ef016f3657280ebd849b68b39fd6a","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.634349207Z"}]},"request_id":"7832f8b7-4b49-4f5c-a8a0-83fc9ec25556","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.0261593} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","method":"POST","requestID":"620ef016f3657280ebd849b68b39fd6a","responseTime":6,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"620ef016f3657280ebd849b68b39fd6a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"620ef016f3657280ebd849b68b39fd6a"} device-1 | {"level":"info","message":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? 200 17ms","method":"GET","requestID":"620ef016f3657280ebd849b68b39fd6a","responseTime":17,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng","level":"info","message":"auth send jwt","requestID":"45c488f183de053fe40fc266ce46ac0c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"45c488f183de053fe40fc266ce46ac0c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"45c488f183de053fe40fc266ce46ac0c"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.507929,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45c488f183de053fe40fc266ce46ac0c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"45c488f183de053fe40fc266ce46ac0c","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"d554a9ad-9770-485d-86fe-faee7a57bdb7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.0419128} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"45c488f183de053fe40fc266ce46ac0c","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"45c488f183de053fe40fc266ce46ac0c"} gateway-1 | {"time_local":"14/Mar/2025:16:26:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"45c488f183de053fe40fc266ce46ac0c"} device-1 | {"level":"info","message":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? 200 13ms","method":"GET","requestID":"45c488f183de053fe40fc266ce46ac0c","responseTime":13,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng","level":"info","message":"auth send jwt","requestID":"eeaad88146956660dacd446253b5f2c4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eeaad88146956660dacd446253b5f2c4","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"eeaad88146956660dacd446253b5f2c4"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.7071,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"eeaad88146956660dacd446253b5f2c4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eeaad88146956660dacd446253b5f2c4","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to run experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to book experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully booked experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677151,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.34639,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.634349207Z"}]},"request_id":"861582ce-4fd4-4530-bf1f-696a8f7b6b14","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.1441348} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"b7877d9a-6054-4c7f-9343-c86e63da233b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.1448243} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? 200 33ms","method":"GET","requestID":"1d896fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? 200 12ms","method":"GET","requestID":"1d8ccb10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Setting up experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully locked booking for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to update booking for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully updated booking for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully set up experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully running experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1d9bbf30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.999006,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.80514,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e8b98407-b273-4af8-b957-dd0956ae5833","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2416143} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.634349207Z"}]},"request_id":"34c44789-a04d-4f3f-9579-bb68fceb3b12","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2423143} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"2a1b633d-7a7a-410b-9d55-4c3478016dee","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2430887} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.863236,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d9bbf30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1d9bbf30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde395f22-8b26-4f77-a559-93a905e97f01#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde395f22-8b26-4f77-a559-93a905e97f01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"bb7d06c5-03f5-404d-bad9-d99aa9d6c023","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2470987} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7d8e0408-a5f0-45d5-ad4c-a642a9b81eb1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.247274} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1d9bbf30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling 200 13ms","method":"POST","requestID":"1d9bbf30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"eeaad88146956660dacd446253b5f2c4","responseTime":11,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? 200 38ms","method":"GET","requestID":"1d9815b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? 200 16ms","method":"GET","requestID":"1d9b9820-00f1-11f0-9a2b-c98a3cf1c544","responseTime":16,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1d9e0920-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1d9ea560-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8237ca18-a7d4-4017-b7f2-7484f128d88b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.25524} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.986394,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"eeaad88146956660dacd446253b5f2c4"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d9e0920-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Mar/2025:16:26:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.236","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 233ms","method":"POST","requestID":"eeaad88146956660dacd446253b5f2c4","responseTime":233,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"1d9e0920-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0560d2db-badd-4366-9eab-4bc819751863","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.283364} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.664788,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d9ea560-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1d9e0920-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"1d9ea560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling 200 35ms","method":"POST","requestID":"1d9e0920-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng","level":"info","message":"auth send jwt","requestID":"c875098d50f03a477bd103ff3a561af4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c875098d50f03a477bd103ff3a561af4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1d9ea560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling 200 34ms","method":"POST","requestID":"1d9ea560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c875098d50f03a477bd103ff3a561af4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1da3fc90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40372","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676689,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c875098d50f03a477bd103ff3a561af4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c875098d50f03a477bd103ff3a561af4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7edf785c-36ab-4849-96f3-c82e3b245024","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2929986} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.178825,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1da3fc90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1da3fc90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.634349207Z"}]},"request_id":"e1bcdc3d-0cbc-4e16-aa91-5f39ffa24910","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.2949011} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c875098d50f03a477bd103ff3a561af4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1da3fc90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling 200 9ms","method":"POST","requestID":"1da3fc90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c875098d50f03a477bd103ff3a561af4"} gateway-1 | {"time_local":"14/Mar/2025:16:26:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c875098d50f03a477bd103ff3a561af4"} device-1 | {"level":"info","message":"GET /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19? 200 11ms","method":"GET","requestID":"c875098d50f03a477bd103ff3a561af4","responseTime":11,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Building connection plan","requestID":"eeaad88146956660dacd446253b5f2c4"} 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":"86f78bae-b22b-413b-b2e5-1c70fc5d74fc"},{"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":"a4582493-f837-42a5-aef0-abfbadb4d8ef"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"3f7ac723-7702-4fc5-9727-74db32356a24"}]},"level":"info","message":"Built pairwise service configurations","requestID":"eeaad88146956660dacd446253b5f2c4"} 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/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19"},{"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/a29e78cb-e061-4a58-84ff-41dc5fecda46"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"eeaad88146956660dacd446253b5f2c4"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng","level":"info","message":"auth send jwt","requestID":"5b9eecc66e5768948d5cf7edee8e21e1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5b9eecc66e5768948d5cf7edee8e21e1","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5b9eecc66e5768948d5cf7edee8e21e1"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.713862,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.5603,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5b9eecc66e5768948d5cf7edee8e21e1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969603,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwM30.onL-2wvorMyPVqbZMKKfMCOEMekAqSaQW1am9AGvkng"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"5b9eecc66e5768948d5cf7edee8e21e1","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:40.694375053Z"}]},"request_id":"90cb974a-89b2-4e0a-b769-582f2c9c2cf7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.3340726} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5b9eecc66e5768948d5cf7edee8e21e1","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5b9eecc66e5768948d5cf7edee8e21e1"} gateway-1 | {"time_local":"14/Mar/2025:16:26:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5b9eecc66e5768948d5cf7edee8e21e1"} device-1 | {"level":"info","message":"GET /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46? 200 34ms","method":"GET","requestID":"5b9eecc66e5768948d5cf7edee8e21e1","responseTime":34,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"b5bd8168-020d-4849-a354-82ff0f11ccc8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.3378532} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66e7a077-2197-468a-ba80-21331682b27b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.3380847} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456'","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456'","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 86ms","method":"POST","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544","responseTime":86,"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","requestID":"1da5d150-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"eeaad88146956660dacd446253b5f2c4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1db98060-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ee937cc5-2505-4127-bc43-67058623bc67","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.4349604} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.088514,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1db98060-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1db98060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1db98060-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling 200 9ms","method":"POST","requestID":"1db98060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1dbb2e10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"638ad3c5-2816-4d6e-9a9e-b7f590159ef4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969603.445502} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.229939,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1dbb2e10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1dbb2e10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1dbb2e10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling 200 8ms","method":"POST","requestID":"1dbb2e10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling"} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 6965059369379821413 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:bNAY\r\na=ice-pwd:aTfYav9nv4ZEn2CvgUdPJd1d\r\na=ice-options:trickle\r\na=fingerprint:sha-256 21:48:DF:54:B5:1D:0C:EE:94:1F:F3:0A:6B:66:B2:0E:A8:05:E2:94:78:E9:A6:9F:41:30:FD:99:E4:C1:BE:B4\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:765583755 1 udp 2113937151 b81abd2e-bf29-4127-966e-f99cec79225e.local 35198 typ host generation 0 ufrag bNAY network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"768ba126a35c34ebb96d08d0080abad6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"768ba126a35c34ebb96d08d0080abad6","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} 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/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19"},{"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/a29e78cb-e061-4a58-84ff-41dc5fecda46"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456"}}},"level":"info","message":"received a callback","requestID":"768ba126a35c34ebb96d08d0080abad6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"768ba126a35c34ebb96d08d0080abad6","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"768ba126a35c34ebb96d08d0080abad6"} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"897d6dfc7638b1797d38c3158135eea4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"897d6dfc7638b1797d38c3158135eea4","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/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19"},{"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/a29e78cb-e061-4a58-84ff-41dc5fecda46"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456"}}},"level":"info","message":"received a callback","requestID":"897d6dfc7638b1797d38c3158135eea4"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"1ef42340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9548e584-40df-425f-853c-9d56d8533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2444bc9c-4121-4017-8af4-55e713340cfd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.4958673} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.21199,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ef42340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1ef42340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"1ef42340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/9548e584-40df-425f-853c-9d56d8533456 200 7ms","method":"GET","requestID":"1ef42340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/9548e584-40df-425f-853c-9d56d8533456"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"897d6dfc7638b1797d38c3158135eea4","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"897d6dfc7638b1797d38c3158135eea4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1ef77ea0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7f84d657-4f7a-4982-9297-8adc8a1b48f9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.5189786} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.819291,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ef77ea0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1ef77ea0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1ef77ea0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling 200 8ms","method":"POST","requestID":"1ef77ea0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1ef90540-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4834a73b-45f8-4370-8f24-db0db0cb580b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.528899} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.465132,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1ef90540-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1ef90540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1ef90540-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling 200 8ms","method":"POST","requestID":"1ef90540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM","level":"info","message":"auth send jwt","requestID":"ca44ced7a8080960fec8add52f60b2ae"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ca44ced7a8080960fec8add52f60b2ae","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/de395f22-8b26-4f77-a559-93a905e97f01","requestID":"ca44ced7a8080960fec8add52f60b2ae"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.922522,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ca44ced7a8080960fec8add52f60b2ae","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969605,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ca44ced7a8080960fec8add52f60b2ae","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/de395f22-8b26-4f77-a559-93a905e97f01","requestID":"ca44ced7a8080960fec8add52f60b2ae"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/de395f22-8b26-4f77-a559-93a905e97f01 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ca44ced7a8080960fec8add52f60b2ae"} experiment-1 | {"level":"info","message":"GET /experiments/de395f22-8b26-4f77-a559-93a905e97f01 200 12ms","method":"GET","requestID":"ca44ced7a8080960fec8add52f60b2ae","responseTime":12,"status":200,"url":"/experiments/de395f22-8b26-4f77-a559-93a905e97f01"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM","level":"info","message":"auth send jwt","requestID":"8501447bbdfd6c596ec4ea97657287f0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8501447bbdfd6c596ec4ea97657287f0","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/de395f22-8b26-4f77-a559-93a905e97f01","requestID":"8501447bbdfd6c596ec4ea97657287f0"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.781851,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8501447bbdfd6c596ec4ea97657287f0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969605,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"8501447bbdfd6c596ec4ea97657287f0","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Attempting to finish experiment","requestID":"8501447bbdfd6c596ec4ea97657287f0"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.72239,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969605,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456","device":"0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"a29e78cb-e061-4a58-84ff-41dc5fecda46","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9548e584-40df-425f-853c-9d56d8533456","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9548e584-40df-425f-853c-9d56d8533456': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9548e584-40df-425f-853c-9d56d8533456","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"be16a4e4-e4ae-4f80-8c08-423ae4f66f42","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.6531575} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf7ae0fc-be93-44e4-9615-1bf2c6eed222","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.6534393} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e5ebed1192d25bd370a6917399b112a5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e5ebed1192d25bd370a6917399b112a5","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/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456"}}},"level":"info","message":"received a callback","requestID":"e5ebed1192d25bd370a6917399b112a5"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0042a066e637fad7ffb6fd8c4372bc85","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"0042a066e637fad7ffb6fd8c4372bc85","responseTime":25,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9548e584-40df-425f-853c-9d56d8533456"}}},"level":"info","message":"received a callback","requestID":"0042a066e637fad7ffb6fd8c4372bc85"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/9548e584-40df-425f-853c-9d56d8533456 204 57ms","method":"DELETE","requestID":"1f0a9170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":57,"status":204,"url":"/peerconnections/9548e584-40df-425f-853c-9d56d8533456"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/de395f22-8b26-4f77-a559-93a905e97f01"},"level":"info","message":"Successfully finished experiment","requestID":"8501447bbdfd6c596ec4ea97657287f0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1f160320-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"319429a2-0133-499e-b09f-0c1e7a156458","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.7187955} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.776033,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1f160320-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"1f160320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1f160320-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling 200 8ms","method":"POST","requestID":"1f160320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"1f1789c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde395f22-8b26-4f77-a559-93a905e97f01': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fde395f22-8b26-4f77-a559-93a905e97f01","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"f5e1f0ad-2e0c-4647-ab7a-90031b883de9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.726348} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7134a69d-73de-4ca9-bf93-557948ee6970","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.7267199} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"8501447bbdfd6c596ec4ea97657287f0","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa29e78cb-e061-4a58-84ff-41dc5fecda46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2e85ee64-ce2f-4d34-82ba-e117b23a9443","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.7287588} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.382742,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1f1789c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1f1789c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"1f1789c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling 200 9ms","method":"POST","requestID":"1f1789c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/de395f22-8b26-4f77-a559-93a905e97f01","requestID":"8501447bbdfd6c596ec4ea97657287f0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/de395f22-8b26-4f77-a559-93a905e97f01 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.177","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8501447bbdfd6c596ec4ea97657287f0"} experiment-1 | {"level":"info","message":"DELETE /experiments/de395f22-8b26-4f77-a559-93a905e97f01 204 174ms","method":"DELETE","requestID":"8501447bbdfd6c596ec4ea97657287f0","responseTime":174,"status":204,"url":"/experiments/de395f22-8b26-4f77-a559-93a905e97f01"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2528","request_time":"4.112","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"896938b6ce339633a41a01749f27df60"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 126ms","method":"POST","requestID":"e5ebed1192d25bd370a6917399b112a5","responseTime":126,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.129","http_referrer":"","http_user_agent":"node-fetch","requestID":"e5ebed1192d25bd370a6917399b112a5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 100ms","method":"POST","requestID":"0042a066e637fad7ffb6fd8c4372bc85","responseTime":100,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"0042a066e637fad7ffb6fd8c4372bc85"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM","level":"info","message":"auth send jwt","requestID":"877e9b25893f137d8d43887492ade8ba"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"877e9b25893f137d8d43887492ade8ba"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.781033,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"877e9b25893f137d8d43887492ade8ba","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969605,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2403","request_time":"2.799","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"63c44bf93d6cd5c60445886926f69e5e"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a29e78cb-e061-4a58-84ff-41dc5fecda46' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8840112f-8049-4667-9434-0ab8302bb12c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.801949} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa26c264-9bd9-42dc-8b74-ac8f8331cf1d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.8068264} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0d4f9a3c-b7b2-4c64-82c4-24918ca84d19' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"388edcda-220b-4a10-a708-8b1f8888b8a8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.816342} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b629179a-8fed-47ed-9886-b705a7f2c501","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.816441} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.816315555Z"}]},"request_id":"981ac7a5-e7c5-4c99-8636-547c3c4fb585","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.8215754} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"877e9b25893f137d8d43887492ade8ba"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"877e9b25893f137d8d43887492ade8ba","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"877e9b25893f137d8d43887492ade8ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM","level":"info","message":"auth send jwt","requestID":"92f22c927e1a0ce7c615cf14fa023fe1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"92f22c927e1a0ce7c615cf14fa023fe1"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.937149,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"92f22c927e1a0ce7c615cf14fa023fe1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969605,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNX0.oMWtNa6jKQjm1EtTfjeEv-9LBuS-vK6z2Kl5TPiluRM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"6ad9f29e-9c34-43f7-a4ba-8908277c107a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.843959} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8ea29c1-c20f-488e-8fb2-f46dd8c66e49","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.8483248} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"96468650-71c4-464f-a92f-cd5fdf69619c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.881018} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"54ee4ad9-8fd6-4c5c-a69d-2337b284fc9b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.881231} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"fde649c8-3287-44a2-8ae1-cc6da8a245b9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969605.885518} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"92f22c927e1a0ce7c615cf14fa023fe1"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"92f22c927e1a0ce7c615cf14fa023fe1","responseTime":59,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92f22c927e1a0ce7c615cf14fa023fe1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNn0.0MIKo093p-hqyv7x4w1wRbCu0FQ5eJNtzvq3pkJCxIg","level":"info","message":"auth send jwt","requestID":"0ae65574dd2940b183508aac2506cd7c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"0ae65574dd2940b183508aac2506cd7c"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:46Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670835,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0ae65574dd2940b183508aac2506cd7c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969606,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNn0.0MIKo093p-hqyv7x4w1wRbCu0FQ5eJNtzvq3pkJCxIg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"c086fc0e-e4ea-4a45-96cc-450f67021599","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969606.8352125} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d54b1106-faf4-4ae9-b682-5eb298ac1740","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969606.8392107} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"1404786f-1435-4b07-add8-72ed8bb7adfa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969606.848213} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"0ae65574dd2940b183508aac2506cd7c"} device-1 | {"level":"info","message":"PATCH /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41 200 47ms","method":"PATCH","requestID":"0ae65574dd2940b183508aac2506cd7c","responseTime":47,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41"} gateway-1 | {"time_local":"14/Mar/2025:16:26:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"0ae65574dd2940b183508aac2506cd7c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNn0.0MIKo093p-hqyv7x4w1wRbCu0FQ5eJNtzvq3pkJCxIg","level":"info","message":"auth send jwt","requestID":"989eba21f07022c2fd5a1b5cb4e3588e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"989eba21f07022c2fd5a1b5cb4e3588e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"989eba21f07022c2fd5a1b5cb4e3588e"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:46Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.827229,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"989eba21f07022c2fd5a1b5cb4e3588e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969606,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwNn0.0MIKo093p-hqyv7x4w1wRbCu0FQ5eJNtzvq3pkJCxIg"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"989eba21f07022c2fd5a1b5cb4e3588e","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"989eba21f07022c2fd5a1b5cb4e3588e"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/websocket 200 36ms","method":"POST","requestID":"989eba21f07022c2fd5a1b5cb4e3588e","responseTime":36,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"989eba21f07022c2fd5a1b5cb4e3588e"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"1ff0c1f580a34ce4468d90b728df933a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ff0c1f580a34ce4468d90b728df933a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/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":"1ff0c1f580a34ce4468d90b728df933a"} device-1 | {"level":"info","message":"OPTIONS /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/websocket 200 1ms","method":"OPTIONS","requestID":"1ff0c1f580a34ce4468d90b728df933a","responseTime":1,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"ccfd92a5d7cec8e01f326eea8803ef50"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ccfd92a5d7cec8e01f326eea8803ef50","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"ccfd92a5d7cec8e01f326eea8803ef50"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.294885,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ccfd92a5d7cec8e01f326eea8803ef50","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ccfd92a5d7cec8e01f326eea8803ef50","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"ccfd92a5d7cec8e01f326eea8803ef50"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/websocket 200 33ms","method":"POST","requestID":"ccfd92a5d7cec8e01f326eea8803ef50","responseTime":33,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ccfd92a5d7cec8e01f326eea8803ef50"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"743e1b276ec950ac2b12c402ab52a83d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"743e1b276ec950ac2b12c402ab52a83d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"743e1b276ec950ac2b12c402ab52a83d"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.683833,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"743e1b276ec950ac2b12c402ab52a83d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"743e1b276ec950ac2b12c402ab52a83d","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.816315555Z"}]},"request_id":"fd222ef9-6455-4ce0-892d-2665923239e3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.2564108} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"743e1b276ec950ac2b12c402ab52a83d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"743e1b276ec950ac2b12c402ab52a83d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"743e1b276ec950ac2b12c402ab52a83d"} device-1 | {"level":"info","message":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? 200 10ms","method":"GET","requestID":"743e1b276ec950ac2b12c402ab52a83d","responseTime":10,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"834d460393369ec55589b20f1ba10d4b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"834d460393369ec55589b20f1ba10d4b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"834d460393369ec55589b20f1ba10d4b"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676447,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"834d460393369ec55589b20f1ba10d4b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"834d460393369ec55589b20f1ba10d4b","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"19df2920-0c3c-4f18-8972-c0b947870aee","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.271434} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"834d460393369ec55589b20f1ba10d4b","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"834d460393369ec55589b20f1ba10d4b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"834d460393369ec55589b20f1ba10d4b"} device-1 | {"level":"info","message":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? 200 12ms","method":"GET","requestID":"834d460393369ec55589b20f1ba10d4b","responseTime":12,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"99050320dab53dba8ce2712206d5dc61"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"99050320dab53dba8ce2712206d5dc61","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"99050320dab53dba8ce2712206d5dc61"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.130297,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"99050320dab53dba8ce2712206d5dc61","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"99050320dab53dba8ce2712206d5dc61","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to run experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to book experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully booked experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.91008,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761604,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.816315555Z"}]},"request_id":"e1a4e4fe-0a3f-4c6e-8700-78b16c858902","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.3145144} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"f71a7af2-e47f-42f2-afa4-893c3b692928","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.3182156} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? 200 12ms","method":"GET","requestID":"20a1ac30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? 200 13ms","method":"GET","requestID":"20a1d340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Setting up experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully locked booking for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to update booking for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully updated booking for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully set up experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully running experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20adba20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.820523,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.715179,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90f09fad-21a3-4ac0-a156-51037002b2a3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4178724} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.173166,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20adba20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"20adba20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.816315555Z"}]},"request_id":"be4e5491-eefb-40d2-bd8b-c1a4263e6c5d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4193423} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"fc555374-d788-4a73-83f9-e2b156bf2ba5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4204817} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20adba20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling 200 40ms","method":"POST","requestID":"20adba20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":40,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? 200 44ms","method":"GET","requestID":"20ad1de0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":44,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? 200 43ms","method":"GET","requestID":"20ad6c00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20b422c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd37deecc-97ca-4c8f-aa05-81655386b827#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd37deecc-97ca-4c8f-aa05-81655386b827","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c1a15f68-dc34-4e40-80a1-2d37e80abe80","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.428319} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8beb4b76-ca73-43de-8811-5a822f5b70b8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4285653} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20b470e0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 45ms","method":"POST","requestID":"99050320dab53dba8ce2712206d5dc61","responseTime":45,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.602866,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d9cc3942-11e9-4b83-83cd-a6c7a71ba6da","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4330034} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20b422c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"20b422c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b587ef7-4412-4df2-a79b-98d46ace0ea3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.436941} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.150454,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20b422c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20b470e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling 200 10ms","method":"POST","requestID":"20b422c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"20b470e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"99050320dab53dba8ce2712206d5dc61"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"level":"info","message":"POST /experiments? 201 160ms","method":"POST","requestID":"99050320dab53dba8ce2712206d5dc61","responseTime":160,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20b470e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling 200 35ms","method":"POST","requestID":"20b470e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"da04bebeeaeb383de0036a2d5cf167c0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"da04bebeeaeb383de0036a2d5cf167c0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20ba1630-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"da04bebeeaeb383de0036a2d5cf167c0"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"64dba414-72a4-464a-a060-8f3e7ff4e1d5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4716406} authorization-1 | {"client_addr":"127.0.0.1:56834","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.726355,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"da04bebeeaeb383de0036a2d5cf167c0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"da04bebeeaeb383de0036a2d5cf167c0","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.238642,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20ba1630-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"20ba1630-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.816315555Z"}]},"request_id":"d846f3ca-c433-4f03-8b64-954882292a81","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.4755573} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20ba1630-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling 200 9ms","method":"POST","requestID":"20ba1630-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"da04bebeeaeb383de0036a2d5cf167c0","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Building connection plan","requestID":"99050320dab53dba8ce2712206d5dc61"} 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":"93ad74e1-ad41-4b4e-bc69-1457583bba40"},{"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":"53f97236-18f0-474c-b3c9-28c257ee427b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"4ff0a7e0-e399-4fd7-a014-c0155650194f"}]},"level":"info","message":"Built pairwise service configurations","requestID":"99050320dab53dba8ce2712206d5dc61"} 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/5c8f03ba-fb76-4b00-97a4-7b735812ab41"},{"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/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"99050320dab53dba8ce2712206d5dc61"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"da04bebeeaeb383de0036a2d5cf167c0"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"da04bebeeaeb383de0036a2d5cf167c0"} device-1 | {"level":"info","message":"GET /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd? 200 11ms","method":"GET","requestID":"da04bebeeaeb383de0036a2d5cf167c0","responseTime":11,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd?"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.814897,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk","level":"info","message":"auth send jwt","requestID":"a93d068346e9b3200569fa474492fc10"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a93d068346e9b3200569fa474492fc10","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a93d068346e9b3200569fa474492fc10"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669273,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a93d068346e9b3200569fa474492fc10","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969608,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYwOH0.hXv101Uo4dYQoCw_Zlm8hGGZfgoLpHAxYXZgtx0uphk"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"a93d068346e9b3200569fa474492fc10","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:45.880991424Z"}]},"request_id":"35a538b0-2acb-4d3e-8bee-9a060ad5b0d2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.5153534} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a93d068346e9b3200569fa474492fc10","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"03ceaca9-5d35-42e1-bd5d-ce667f705475","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.5163116} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f9aaf68f-01e7-4c38-beee-874ae95ccc5e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.516546} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a93d068346e9b3200569fa474492fc10"} gateway-1 | {"time_local":"14/Mar/2025:16:26:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a93d068346e9b3200569fa474492fc10"} device-1 | {"level":"info","message":"GET /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41? 200 35ms","method":"GET","requestID":"a93d068346e9b3200569fa474492fc10","responseTime":35,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3'","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3'","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 91ms","method":"POST","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":91,"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","requestID":"20bbeaf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} device-1 | {"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 8880295643922945594 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:SAq6\r\na=ice-pwd:TBzO5t2AKyUfBwssYwu7cOIr\r\na=ice-options:trickle\r\na=fingerprint:sha-256 BE:B1:3A:DE:CF:35:38:C4:07:E1:C8:90:A0:5D:B2:FF:69:DF:37:C8:EC:E4:05:EA:A1:2B:93:DB:86:01:80:C5\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"99050320dab53dba8ce2712206d5dc61"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20d1e3f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04d6a741-f109-4f60-8876-a632a50456a1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.6269603} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.214718,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20d1e3f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"20d1e3f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20d1e3f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling 200 7ms","method":"POST","requestID":"20d1e3f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"20d34380-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"41d4d020-36e1-4e66-95fc-6d0d9e81362b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969608.635906} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.202505,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:48Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"20d34380-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"20d34380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"20d34380-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling 200 7ms","method":"POST","requestID":"20d34380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling"} device-1 | {"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c1f89666584f960de113d2066f656bd8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c1f89666584f960de113d2066f656bd8","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/5c8f03ba-fb76-4b00-97a4-7b735812ab41"},{"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/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"}}},"level":"info","message":"received a callback","requestID":"c1f89666584f960de113d2066f656bd8"} device-1 | {"content":{"candidate":"candidate:2590365858 1 udp 2113937151 4a9f7739-d4ec-47b6-a31c-2170ee21c35e.local 38545 typ host generation 0 ufrag SAq6 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"c1f89666584f960de113d2066f656bd8","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"c1f89666584f960de113d2066f656bd8"} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e9b997322e050edc9d9d48d8285b7d94","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e9b997322e050edc9d9d48d8285b7d94","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/5c8f03ba-fb76-4b00-97a4-7b735812ab41"},{"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/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"}}},"level":"info","message":"received a callback","requestID":"e9b997322e050edc9d9d48d8285b7d94"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2206ba70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bcc60412-4182-472a-b032-59f51155186d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.6511796} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.30428,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2206ba70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2206ba70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2206ba70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3 200 8ms","method":"GET","requestID":"2206ba70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"e9b997322e050edc9d9d48d8285b7d94","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"e9b997322e050edc9d9d48d8285b7d94"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2209eec0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66472b46-e0e0-4c77-ad0a-d3f1f2bd8f28","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.6720862} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.228069,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2209eec0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2209eec0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2209eec0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling 200 7ms","method":"POST","requestID":"2209eec0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"220b4e50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3dd1fe4f-687c-4e22-b20d-4277ee929b2f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.6819148} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.782657,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"220b4e50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"220b4e50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"220b4e50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling 200 9ms","method":"POST","requestID":"220b4e50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos","level":"info","message":"auth send jwt","requestID":"c8906c1ed8059defd2639a260e132727"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c8906c1ed8059defd2639a260e132727","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d37deecc-97ca-4c8f-aa05-81655386b827","requestID":"c8906c1ed8059defd2639a260e132727"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.119924,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c8906c1ed8059defd2639a260e132727","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969610,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c8906c1ed8059defd2639a260e132727","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/d37deecc-97ca-4c8f-aa05-81655386b827","requestID":"c8906c1ed8059defd2639a260e132727"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d37deecc-97ca-4c8f-aa05-81655386b827 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c8906c1ed8059defd2639a260e132727"} experiment-1 | {"level":"info","message":"GET /experiments/d37deecc-97ca-4c8f-aa05-81655386b827 200 10ms","method":"GET","requestID":"c8906c1ed8059defd2639a260e132727","responseTime":10,"status":200,"url":"/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos","level":"info","message":"auth send jwt","requestID":"057792a30e904bfce9b952438884d26c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"057792a30e904bfce9b952438884d26c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d37deecc-97ca-4c8f-aa05-81655386b827","requestID":"057792a30e904bfce9b952438884d26c"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.80885,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"057792a30e904bfce9b952438884d26c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969610,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"057792a30e904bfce9b952438884d26c","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Attempting to finish experiment","requestID":"057792a30e904bfce9b952438884d26c"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.866402,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969610,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","device":"ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5c8f03ba-fb76-4b00-97a4-7b735812ab41","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a6bee40-7218-4586-9ff6-8ac3e47ef8d3': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a6bee40-7218-4586-9ff6-8ac3e47ef8d3","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"a699d2d4-5246-43b2-91f9-cf9ec58e8e77","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.7921603} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d6eeac492a3cee4c0bbf86b1ba505ba1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e2c9579-2909-471a-a932-ec96715c3832","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.7925391} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d6eeac492a3cee4c0bbf86b1ba505ba1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6fb905832c67512f485a0ac17f74ae7b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"6fb905832c67512f485a0ac17f74ae7b","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41"},{"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/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"}}},"level":"info","message":"received a callback","requestID":"d6eeac492a3cee4c0bbf86b1ba505ba1"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41"},{"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/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"}}},"level":"info","message":"received a callback","requestID":"6fb905832c67512f485a0ac17f74ae7b"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3 204 53ms","method":"DELETE","requestID":"221a9090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":53,"status":204,"url":"/peerconnections/6a6bee40-7218-4586-9ff6-8ac3e47ef8d3"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"},"level":"info","message":"Successfully finished experiment","requestID":"057792a30e904bfce9b952438884d26c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2224c9c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5c8f03ba-fb76-4b00-97a4-7b735812ab41","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91752702-79cd-4002-b8cb-392009c3a5fc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.8689437} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.604616,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2224c9c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2224c9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2224c9c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling 200 28ms","method":"POST","requestID":"2224c9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"22295da0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"39420be9-198e-4e22-8c2b-4d85cde17f83","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.87872} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.448173,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd37deecc-97ca-4c8f-aa05-81655386b827': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd37deecc-97ca-4c8f-aa05-81655386b827","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"9e5acccf-4e9d-4395-9740-0abfdbbe0b85","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.8796263} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"22295da0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"22295da0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d17b3584-369c-415b-a388-f1d422b881a5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969610.879908} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"057792a30e904bfce9b952438884d26c","responseTime":39,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"22295da0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling 200 11ms","method":"POST","requestID":"22295da0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d37deecc-97ca-4c8f-aa05-81655386b827","requestID":"057792a30e904bfce9b952438884d26c"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d37deecc-97ca-4c8f-aa05-81655386b827 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.238","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"057792a30e904bfce9b952438884d26c"} experiment-1 | {"level":"info","message":"DELETE /experiments/d37deecc-97ca-4c8f-aa05-81655386b827 204 236ms","method":"DELETE","requestID":"057792a30e904bfce9b952438884d26c","responseTime":236,"status":204,"url":"/experiments/d37deecc-97ca-4c8f-aa05-81655386b827"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2578","request_time":"4.087","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"42e96ef713deb1dbef10afd80601b5aa"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 164ms","method":"POST","requestID":"d6eeac492a3cee4c0bbf86b1ba505ba1","responseTime":164,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch","requestID":"d6eeac492a3cee4c0bbf86b1ba505ba1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 164ms","method":"POST","requestID":"6fb905832c67512f485a0ac17f74ae7b","responseTime":164,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch","requestID":"6fb905832c67512f485a0ac17f74ae7b"} device-1 | {"level":"info","message":"postDevices called","requestID":"6ab5520a097c272aa0a1f1c463b265ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos","level":"info","message":"auth send jwt","requestID":"6ab5520a097c272aa0a1f1c463b265ec"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":4,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2398","request_time":"2.784","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"85741f12b3888aade721bac5a53d49f9"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:51Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.958055,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6ab5520a097c272aa0a1f1c463b265ec","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969610,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMH0.nmXvijzowlLhqihKVzvAQMmgDU2UWQQTqxP5eW-VAos"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5c8f03ba-fb76-4b00-97a4-7b735812ab41' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2d4c9a41-14d8-473d-ab81-637f9bbbfb78","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.0288577} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5479c270-9005-4aca-8880-2c359597c14e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.057643} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ea1a0cfd-77a7-47c3-96cb-cb141fbc43cd' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"d898f19d-82a9-4cba-8843-eca3a42de3a1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.0685942} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"949081b4-d0b9-42cb-baee-aecc5224d884","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.0690324} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"8a68c50f-d617-4c44-9d83-43b79fca5c5a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.0742044} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6ab5520a097c272aa0a1f1c463b265ec"} gateway-1 | {"time_local":"14/Mar/2025:16:26:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.095","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6ab5520a097c272aa0a1f1c463b265ec"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"6ab5520a097c272aa0a1f1c463b265ec","responseTime":90,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMX0.l_7_iJkfoc32AOTmIKQU4pysyozGP89mYNYrIade4Vo","level":"info","message":"auth send jwt","requestID":"eaeb1053d922547cd72230476f3ccc7a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"eaeb1053d922547cd72230476f3ccc7a"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:51Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.932785,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"eaeb1053d922547cd72230476f3ccc7a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969611,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMX0.l_7_iJkfoc32AOTmIKQU4pysyozGP89mYNYrIade4Vo"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"66f7a30d-31bd-450f-a57e-1ea97473032c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.1205795} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb74e66f-74b9-4bc2-85a0-f0c02337863a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.1250203} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"8347bd2c-8d25-4d66-8dca-cbdb55094e7c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.1575067} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a7e2bb77-008b-4f90-9e08-477aafcb3adf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.157671} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.157483926Z"}]},"request_id":"41e1fdb1-f444-4b95-bd18-a5eacc769f2b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969611.1620598} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"eaeb1053d922547cd72230476f3ccc7a"} gateway-1 | {"time_local":"14/Mar/2025:16:26:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.087","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eaeb1053d922547cd72230476f3ccc7a"} device-1 | {"level":"info","message":"POST /devices? 201 59ms","method":"POST","requestID":"eaeb1053d922547cd72230476f3ccc7a","responseTime":59,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMX0.l_7_iJkfoc32AOTmIKQU4pysyozGP89mYNYrIade4Vo","level":"info","message":"auth send jwt","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.749586,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969611,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMX0.l_7_iJkfoc32AOTmIKQU4pysyozGP89mYNYrIade4Vo"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"059da7ee-e3b7-4b30-98d9-4082e3e8dfba","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969612.023661} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"359634b8-f91e-455f-af7e-ccab04f67ef2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969612.0277746} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"1c971f62-ad8c-401b-8d72-84dc775db3b5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969612.0393648} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMn0.HGCTsGuqvuRcZXcVuORxRO3UUGHq8xOXffr9cBiGC48","level":"info","message":"auth send jwt","requestID":"6778b4ad783f435883939988e78a966e"} device-1 | {"level":"info","message":"PATCH /devices/6049f680-e520-4747-944e-cd4b2ff5de31 200 70ms","method":"PATCH","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf","responseTime":70,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31"} gateway-1 | {"time_local":"14/Mar/2025:16:26:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6049f680-e520-4747-944e-cd4b2ff5de31 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.076","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"8e19c394b09235d4feeb2fa2e8e17dbf"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6778b4ad783f435883939988e78a966e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6778b4ad783f435883939988e78a966e"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:52Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.708901,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6778b4ad783f435883939988e78a966e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969612,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxMn0.HGCTsGuqvuRcZXcVuORxRO3UUGHq8xOXffr9cBiGC48"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6778b4ad783f435883939988e78a966e","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6778b4ad783f435883939988e78a966e"} gateway-1 | {"time_local":"14/Mar/2025:16:26:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"6778b4ad783f435883939988e78a966e"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/websocket 200 14ms","method":"POST","requestID":"6778b4ad783f435883939988e78a966e","responseTime":14,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"408ec041da5fa2862c4e9f593c33e1eb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"408ec041da5fa2862c4e9f593c33e1eb","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/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":"408ec041da5fa2862c4e9f593c33e1eb"} device-1 | {"level":"info","message":"OPTIONS /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/websocket 200 1ms","method":"OPTIONS","requestID":"408ec041da5fa2862c4e9f593c33e1eb","responseTime":1,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"d3b6a0c0569608c66b4e670914936bc3"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d3b6a0c0569608c66b4e670914936bc3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d3b6a0c0569608c66b4e670914936bc3"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.346011,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d3b6a0c0569608c66b4e670914936bc3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"d3b6a0c0569608c66b4e670914936bc3","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d3b6a0c0569608c66b4e670914936bc3"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d3b6a0c0569608c66b4e670914936bc3"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/websocket 200 20ms","method":"POST","requestID":"d3b6a0c0569608c66b4e670914936bc3","responseTime":20,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"cfc7f60a679123f962bce91c5d4b68ff"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cfc7f60a679123f962bce91c5d4b68ff","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cfc7f60a679123f962bce91c5d4b68ff"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.936956,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cfc7f60a679123f962bce91c5d4b68ff","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"cfc7f60a679123f962bce91c5d4b68ff","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"bc2ddb58-1060-4ff7-bb10-4a94acaaba31","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.4671602} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cfc7f60a679123f962bce91c5d4b68ff","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cfc7f60a679123f962bce91c5d4b68ff"} device-1 | {"level":"info","message":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? 200 12ms","method":"GET","requestID":"cfc7f60a679123f962bce91c5d4b68ff","responseTime":12,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cfc7f60a679123f962bce91c5d4b68ff"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"ad29a07714ec93f363a8b4ad44c34d24"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ad29a07714ec93f363a8b4ad44c34d24","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ad29a07714ec93f363a8b4ad44c34d24"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.029291,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ad29a07714ec93f363a8b4ad44c34d24","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ad29a07714ec93f363a8b4ad44c34d24","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.157483926Z"}]},"request_id":"108aee41-2ba8-4e8e-8d00-55beff406f3b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.4831867} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ad29a07714ec93f363a8b4ad44c34d24","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ad29a07714ec93f363a8b4ad44c34d24"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ad29a07714ec93f363a8b4ad44c34d24"} device-1 | {"level":"info","message":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? 200 10ms","method":"GET","requestID":"ad29a07714ec93f363a8b4ad44c34d24","responseTime":10,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"f555fe3c2186b6ac653100a49559ab1d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f555fe3c2186b6ac653100a49559ab1d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"f555fe3c2186b6ac653100a49559ab1d"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.636331,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f555fe3c2186b6ac653100a49559ab1d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f555fe3c2186b6ac653100a49559ab1d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to run experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to book experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully booked experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.610184,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.74847,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"af8857ee-7fd7-4001-aae3-1b1456d5c2d8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.5533206} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.157483926Z"}]},"request_id":"e1118dc1-74a5-4e93-bd24-1ab01e960a8c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.5541804} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? 200 37ms","method":"GET","requestID":"23bd4410-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? 200 37ms","method":"GET","requestID":"23bd6b20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Setting up experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully locked booking for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to update booking for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully updated booking for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully set up experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully running experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23d0f320-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.684006,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653391,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.523051,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"21a92146-1193-4507-98b5-30cfa423c41b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.65703} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d0f320-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"23d0f320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"3c48fd83-2ffb-4b2f-b1d6-85883d0f5e48","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6585224} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.157483926Z"}]},"request_id":"68f339bf-97c4-4259-8451-57e6023a34b6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6595335} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23d0f320-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling 200 14ms","method":"POST","requestID":"23d0f320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? 200 42ms","method":"GET","requestID":"23ccd470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":42,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? 200 17ms","method":"GET","requestID":"23d0cc10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe1899f-90cb-4359-9ea0-9fd22b475868#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe1899f-90cb-4359-9ea0-9fd22b475868","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"129f37cd-b2c1-46ac-94ba-25756c834c16","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6667786} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b2df5d71-0a9e-4484-89a7-ada008607744","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.667048} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23d38b30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"f555fe3c2186b6ac653100a49559ab1d","responseTime":16,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23d3d950-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"f555fe3c2186b6ac653100a49559ab1d"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5dd3416c-812c-4815-b2d0-22eaa6db3c39","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6725934} experiment-1 | {"level":"info","message":"POST /experiments? 201 184ms","method":"POST","requestID":"f555fe3c2186b6ac653100a49559ab1d","responseTime":184,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f555fe3c2186b6ac653100a49559ab1d"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98754989-75f9-430f-9026-6e9d7f257331","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6730356} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.863683,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.156452,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"96d2c1070eef835096cc41290c3f0330"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"96d2c1070eef835096cc41290c3f0330","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d38b30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"96d2c1070eef835096cc41290c3f0330"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","method":"POST","requestID":"23d38b30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d3d950-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"23d3d950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.770637,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23d38b30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"96d2c1070eef835096cc41290c3f0330","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling 200 15ms","method":"POST","requestID":"23d38b30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"96d2c1070eef835096cc41290c3f0330","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23d3d950-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling 200 14ms","method":"POST","requestID":"23d3d950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.068567276Z"}]},"request_id":"46b8c727-1251-4171-a01b-f5e689a0d26c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.6857233} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23d67160-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"96d2c1070eef835096cc41290c3f0330","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"96d2c1070eef835096cc41290c3f0330"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"96d2c1070eef835096cc41290c3f0330"} device-1 | {"level":"info","message":"GET /devices/6049f680-e520-4747-944e-cd4b2ff5de31? 200 11ms","method":"GET","requestID":"96d2c1070eef835096cc41290c3f0330","responseTime":11,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4acee870-bbd9-4178-9fac-0779ff6e1ce2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.691389} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.613711,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d67160-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg","level":"info","message":"auth send jwt","requestID":"07d2e9eb53dc582d26712ff782e46af4"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"23d67160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"07d2e9eb53dc582d26712ff782e46af4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23d67160-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling 200 9ms","method":"POST","requestID":"23d67160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"07d2e9eb53dc582d26712ff782e46af4"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Building connection plan","requestID":"f555fe3c2186b6ac653100a49559ab1d"} 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":"d7d8efa4-ab97-4814-876e-3dc73f27ad39"},{"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":"8e8e0785-e9b1-48d5-8162-7e9713f280e0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6a79d6c6-004f-4f4d-a0e4-be60c482c854"}]},"level":"info","message":"Built pairwise service configurations","requestID":"f555fe3c2186b6ac653100a49559ab1d"} 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/6049f680-e520-4747-944e-cd4b2ff5de31"},{"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/3e7907ff-97de-45da-87b7-7aa330a08bfa"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"f555fe3c2186b6ac653100a49559ab1d"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904378,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"07d2e9eb53dc582d26712ff782e46af4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"07d2e9eb53dc582d26712ff782e46af4","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.612601,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969613,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxM30.oweaqUpImCcjmkcCAe-Nc1s9iyrnhZu2ahwGS3mZFFg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:51.157483926Z"}]},"request_id":"7e041725-cc09-4526-8948-b37c0c1a9865","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.7026734} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"07d2e9eb53dc582d26712ff782e46af4","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"07d2e9eb53dc582d26712ff782e46af4"} gateway-1 | {"time_local":"14/Mar/2025:16:26:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07d2e9eb53dc582d26712ff782e46af4"} device-1 | {"level":"info","message":"GET /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa? 200 11ms","method":"GET","requestID":"07d2e9eb53dc582d26712ff782e46af4","responseTime":11,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"895105fe-b1b2-4699-8a1f-cb076075c6d4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.7109063} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"461a2b7e-66a4-4941-9d8c-bb848b80640d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.7110302} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234'","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234'","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 26ms","method":"POST","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"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","requestID":"23d84620-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"f555fe3c2186b6ac653100a49559ab1d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23dfe740-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"38676097-1e4a-4db4-bd70-8b2bd0d9ba12","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.752424} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.881993,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23dfe740-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"23dfe740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23dfe740-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling 200 11ms","method":"POST","requestID":"23dfe740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"23e1e310-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed0bec64-232e-4593-bf9c-f734719d5933","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969613.7655966} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.986874,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"23e1e310-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"content":{"sdp":"v=0\r\no=- 8750879572641486938 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:vRwD\r\na=ice-pwd:t31OFR4SDhf3KAg0A1PAj10F\r\na=ice-options:trickle\r\na=fingerprint:sha-256 D9:92:B2:74:C4:AD:BA:C1:D0:72:A9:76:EC:A2:2F:1E:0B:9D:53:66:E5:FB:7F:E7:BF:26:33:1F:5F:21:84:A6\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"23e1e310-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"23e1e310-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling 200 14ms","method":"POST","requestID":"23e1e310-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling"} device-1 | {"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bc92f0338d7e4b1f526d4af9c7d56dbf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bc92f0338d7e4b1f526d4af9c7d56dbf","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/6049f680-e520-4747-944e-cd4b2ff5de31"},{"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/3e7907ff-97de-45da-87b7-7aa330a08bfa"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"}}},"level":"info","message":"received a callback","requestID":"bc92f0338d7e4b1f526d4af9c7d56dbf"} device-1 | {"content":{"candidate":"candidate:245621116 1 udp 2113937151 b9bd8ba1-1882-4dbc-90dd-21468335a0c6.local 44492 typ host generation 0 ufrag vRwD network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"bc92f0338d7e4b1f526d4af9c7d56dbf","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"bc92f0338d7e4b1f526d4af9c7d56dbf"} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0774e934-839d-4f7b-ad36-9aff63250234","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9cea1d77-6075-473f-be5c-f577be090a63","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969615.7969232} 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/6049f680-e520-4747-944e-cd4b2ff5de31"},{"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/3e7907ff-97de-45da-87b7-7aa330a08bfa"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"}}},"level":"info","message":"received a callback","requestID":"974a4c686af8563fb3398e2aad0da173"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2517f210-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.00201,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2517f210-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2517f210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"974a4c686af8563fb3398e2aad0da173","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"974a4c686af8563fb3398e2aad0da173","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2517f210-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/0774e934-839d-4f7b-ad36-9aff63250234 200 26ms","method":"GET","requestID":"2517f210-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 42ms","method":"POST","requestID":"974a4c686af8563fb3398e2aad0da173","responseTime":42,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26: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.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"974a4c686af8563fb3398e2aad0da173"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"251de580-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c490c837-42bf-4dbb-a8bb-375768b95ddd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969615.8607666} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.510005,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"251de580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"251de580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"251de580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling 200 32ms","method":"POST","requestID":"251de580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"252315a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7a755a35-95dc-425b-ad68-a632af0b258b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969615.8700128} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.071915,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"252315a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"252315a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"252315a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling 200 8ms","method":"POST","requestID":"252315a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNX0.6cEaYUNRmV7fjX9rF5_cWEWocvXlcQkaK2EKqKY1QKA","level":"info","message":"auth send jwt","requestID":"d6ec88c0ed9a7afca65202ec33b0070e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d6ec88c0ed9a7afca65202ec33b0070e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","requestID":"d6ec88c0ed9a7afca65202ec33b0070e"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.884794,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d6ec88c0ed9a7afca65202ec33b0070e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969615,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNX0.6cEaYUNRmV7fjX9rF5_cWEWocvXlcQkaK2EKqKY1QKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d6ec88c0ed9a7afca65202ec33b0070e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","requestID":"d6ec88c0ed9a7afca65202ec33b0070e"} gateway-1 | {"time_local":"14/Mar/2025:16:26:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d6ec88c0ed9a7afca65202ec33b0070e"} experiment-1 | {"level":"info","message":"GET /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868 200 28ms","method":"GET","requestID":"d6ec88c0ed9a7afca65202ec33b0070e","responseTime":28,"status":200,"url":"/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNX0.6cEaYUNRmV7fjX9rF5_cWEWocvXlcQkaK2EKqKY1QKA","level":"info","message":"auth send jwt","requestID":"61cf750d71fcbf10047bf2d1354742cc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"61cf750d71fcbf10047bf2d1354742cc","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","requestID":"61cf750d71fcbf10047bf2d1354742cc"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.728195,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"61cf750d71fcbf10047bf2d1354742cc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969615,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNX0.6cEaYUNRmV7fjX9rF5_cWEWocvXlcQkaK2EKqKY1QKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"61cf750d71fcbf10047bf2d1354742cc","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Attempting to finish experiment","requestID":"61cf750d71fcbf10047bf2d1354742cc"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.771458,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969615,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNX0.6cEaYUNRmV7fjX9rF5_cWEWocvXlcQkaK2EKqKY1QKA"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234","device":"3e7907ff-97de-45da-87b7-7aa330a08bfa","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"6049f680-e520-4747-944e-cd4b2ff5de31","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"0774e934-839d-4f7b-ad36-9aff63250234","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0774e934-839d-4f7b-ad36-9aff63250234': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F0774e934-839d-4f7b-ad36-9aff63250234","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"80be8c0d-2f72-441e-961f-1ecf704cb104","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969615.9639075} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8ed4dcbf-8ae2-4cfc-b478-bea56c3b15f0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969615.964238} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"a707ef330604398956816729d1c9dbce","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"a707ef330604398956816729d1c9dbce","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"239dffbf2b4df59f2cd81b6a66556e7f","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31"},{"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/3e7907ff-97de-45da-87b7-7aa330a08bfa"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"}}},"level":"info","message":"received a callback","requestID":"a707ef330604398956816729d1c9dbce"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"239dffbf2b4df59f2cd81b6a66556e7f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31"},{"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/3e7907ff-97de-45da-87b7-7aa330a08bfa"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"}}},"level":"info","message":"received a callback","requestID":"239dffbf2b4df59f2cd81b6a66556e7f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/0774e934-839d-4f7b-ad36-9aff63250234 204 83ms","method":"DELETE","requestID":"252c1650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":83,"status":204,"url":"/peerconnections/0774e934-839d-4f7b-ad36-9aff63250234"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"},"level":"info","message":"Successfully finished experiment","requestID":"61cf750d71fcbf10047bf2d1354742cc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"253b0a70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6049f680-e520-4747-944e-cd4b2ff5de31","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"46ebf6ff-7f57-4b37-a14b-f3ae43ea6844","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.0514946} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.241701,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"253b0a70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"253b0a70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"253b0a70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling 200 32ms","method":"POST","requestID":"253b0a70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/6049f680-e520-4747-944e-cd4b2ff5de31/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"25403a90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe1899f-90cb-4359-9ea0-9fd22b475868': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F6fe1899f-90cb-4359-9ea0-9fd22b475868","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"2dc86a48-d7ac-474c-a1f8-3e91312d3307","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.05825} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"945d8bfd-e479-4560-9bf3-eff7d1b1bce3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.0585103} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"61cf750d71fcbf10047bf2d1354742cc","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F3e7907ff-97de-45da-87b7-7aa330a08bfa","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef37ff78-1f52-4b71-866e-30ec3a931b5d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.061397} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.188914,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"25403a90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"25403a90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"25403a90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling 200 12ms","method":"POST","requestID":"25403a90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868","requestID":"61cf750d71fcbf10047bf2d1354742cc"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.245","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"61cf750d71fcbf10047bf2d1354742cc"} experiment-1 | {"level":"info","message":"DELETE /experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868 204 241ms","method":"DELETE","requestID":"61cf750d71fcbf10047bf2d1354742cc","responseTime":241,"status":204,"url":"/experiments/6fe1899f-90cb-4359-9ea0-9fd22b475868"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2579","request_time":"4.074","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"38312d4e04772236cc2c8d32fbea16e3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 195ms","method":"POST","requestID":"a707ef330604398956816729d1c9dbce","responseTime":195,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch","requestID":"a707ef330604398956816729d1c9dbce"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 193ms","method":"POST","requestID":"239dffbf2b4df59f2cd81b6a66556e7f","responseTime":193,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.197","http_referrer":"","http_user_agent":"node-fetch","requestID":"239dffbf2b4df59f2cd81b6a66556e7f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNn0.yris_qfIplwXivOjmqP6_so7NBYta86FJdfBov2uYiY","level":"info","message":"auth send jwt","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.767467,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969616,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNn0.yris_qfIplwXivOjmqP6_so7NBYta86FJdfBov2uYiY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":3,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2396","request_time":"2.750","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eff01aa33202b4604d0ede574c47fe66"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/6049f680-e520-4747-944e-cd4b2ff5de31' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2349b50a-2d95-410b-814e-2875916abfd8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2072706} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/3e7907ff-97de-45da-87b7-7aa330a08bfa' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8f37c72e-7c35-4bd9-9f35-b9344ce34aca","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.212053} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"408ef7b6-76df-4dd3-800c-02916b8c1bd2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2209377} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a11e012f-5e76-45d3-8119-931576816371","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2210789} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"8913acf5-9e54-431f-99c8-1642c1c5def1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.225281} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.068","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa"} device-1 | {"level":"info","message":"POST /devices? 201 64ms","method":"POST","requestID":"6717a1b54d0fb87efbb3cfb006ef11fa","responseTime":64,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNn0.yris_qfIplwXivOjmqP6_so7NBYta86FJdfBov2uYiY","level":"info","message":"auth send jwt","requestID":"262dac8a3964300267cc16a600cd35cb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"262dac8a3964300267cc16a600cd35cb"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.847553,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"262dac8a3964300267cc16a600cd35cb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969616,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxNn0.yris_qfIplwXivOjmqP6_so7NBYta86FJdfBov2uYiY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5e70592d-db5c-4645-a5f2-a5b2280d2e16","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2469943} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6a14bfb9-f874-4359-bf28-412644a3187f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2513487} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"d5835483-a569-46c2-8435-3aa021990ab3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.263589} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c1e3f79-48c9-4fb0-bf06-4503d08e5bfa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2637353} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.263569223Z"}]},"request_id":"8f4376ff-a4ee-4a02-8a55-1f41fb529a40","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969616.2677402} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"262dac8a3964300267cc16a600cd35cb"} gateway-1 | {"time_local":"14/Mar/2025:16:26:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"262dac8a3964300267cc16a600cd35cb"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"262dac8a3964300267cc16a600cd35cb","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxN30.8p5Y5Wy_B6fXCRfuS-cYuwfJe51zxkLy1-yKN9X59pk","level":"info","message":"auth send jwt","requestID":"bb711b609dd176827e5ce7599ce7455d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"bb711b609dd176827e5ce7599ce7455d"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:57Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638181,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bb711b609dd176827e5ce7599ce7455d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969617,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxN30.8p5Y5Wy_B6fXCRfuS-cYuwfJe51zxkLy1-yKN9X59pk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"4dab51d6-5f33-4c42-8842-5fd756ddff00","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969617.120916} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d92b272d-7df7-4173-bdba-f8cc894e8e65","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969617.1252375} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"49d50f4d-a75c-43c7-b965-f6c643b70a46","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969617.1586852} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"bb711b609dd176827e5ce7599ce7455d"} gateway-1 | {"time_local":"14/Mar/2025:16:26:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/455f27bd-5277-4ce2-833d-81c59b395cab HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"bb711b609dd176827e5ce7599ce7455d"} device-1 | {"level":"info","message":"PATCH /devices/455f27bd-5277-4ce2-833d-81c59b395cab 200 48ms","method":"PATCH","requestID":"bb711b609dd176827e5ce7599ce7455d","responseTime":48,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxN30.8p5Y5Wy_B6fXCRfuS-cYuwfJe51zxkLy1-yKN9X59pk","level":"info","message":"auth send jwt","requestID":"d7b385195e8061015662ae555d205896"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d7b385195e8061015662ae555d205896","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d7b385195e8061015662ae555d205896"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:57Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.764235,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:57Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d7b385195e8061015662ae555d205896","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969617,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxN30.8p5Y5Wy_B6fXCRfuS-cYuwfJe51zxkLy1-yKN9X59pk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d7b385195e8061015662ae555d205896","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d7b385195e8061015662ae555d205896"} gateway-1 | {"time_local":"14/Mar/2025:16:26:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"d7b385195e8061015662ae555d205896"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/websocket 200 13ms","method":"POST","requestID":"d7b385195e8061015662ae555d205896","responseTime":13,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"256c767ac22bdea71ebe08f2f18b82ec","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"256c767ac22bdea71ebe08f2f18b82ec","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/websocket 200 1ms","method":"OPTIONS","requestID":"256c767ac22bdea71ebe08f2f18b82ec","responseTime":1,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/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":"256c767ac22bdea71ebe08f2f18b82ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"fe66ab59de7f2733ae5b0528b4f397e8"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fe66ab59de7f2733ae5b0528b4f397e8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"fe66ab59de7f2733ae5b0528b4f397e8"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.349434,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fe66ab59de7f2733ae5b0528b4f397e8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"fe66ab59de7f2733ae5b0528b4f397e8","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"fe66ab59de7f2733ae5b0528b4f397e8"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fe66ab59de7f2733ae5b0528b4f397e8"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/websocket 200 22ms","method":"POST","requestID":"fe66ab59de7f2733ae5b0528b4f397e8","responseTime":22,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"5ead6e42b59c0d2e125bb65556e2302b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5ead6e42b59c0d2e125bb65556e2302b","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5ead6e42b59c0d2e125bb65556e2302b"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.709124,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5ead6e42b59c0d2e125bb65556e2302b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5ead6e42b59c0d2e125bb65556e2302b","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"4e28ce33-c10f-419f-9f97-d1b0adf518a6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.5513217} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"5ead6e42b59c0d2e125bb65556e2302b","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5ead6e42b59c0d2e125bb65556e2302b"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ead6e42b59c0d2e125bb65556e2302b"} device-1 | {"level":"info","message":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? 200 12ms","method":"GET","requestID":"5ead6e42b59c0d2e125bb65556e2302b","responseTime":12,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"0999df4196575f8fd40d3f0aa05b0db9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0999df4196575f8fd40d3f0aa05b0db9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"0999df4196575f8fd40d3f0aa05b0db9"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.652358,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0999df4196575f8fd40d3f0aa05b0db9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0999df4196575f8fd40d3f0aa05b0db9","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.263569223Z"}]},"request_id":"dac51ed2-246b-4459-ab29-b55a312293ae","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.5674398} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"0999df4196575f8fd40d3f0aa05b0db9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"0999df4196575f8fd40d3f0aa05b0db9"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0999df4196575f8fd40d3f0aa05b0db9"} device-1 | {"level":"info","message":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? 200 34ms","method":"GET","requestID":"0999df4196575f8fd40d3f0aa05b0db9","responseTime":34,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b8b3a105657c91080ff2bfea5c2649f3","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.685829,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b8b3a105657c91080ff2bfea5c2649f3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"b8b3a105657c91080ff2bfea5c2649f3","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to run experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to book experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully booked experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.605868,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.144711,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"cea618a4-47ea-4d63-90ac-3271be59a6b8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.6584778} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.263569223Z"}]},"request_id":"641f8b9f-c90c-4965-832b-8161a7255363","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.6592171} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? 200 12ms","method":"GET","requestID":"26cc0ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? 200 12ms","method":"GET","requestID":"26cc31c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Setting up experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully locked booking for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to update booking for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully updated booking for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully set up experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully running experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26db9b10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.966085,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.875261,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8b1a6f6c-3ca0-4783-8e26-d8797b15703e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.7589805} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"cb3aab0c-a865-452a-a618-6d8f2199bbca","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.7600312} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.580527,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26db9b10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"26db9b10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.263569223Z"}]},"request_id":"5ed711c7-43bd-4eb8-86c4-a5276ed9a45f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.7608907} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa37fba3b-04dc-4c5f-a909-3dd23c479acd#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa37fba3b-04dc-4c5f-a909-3dd23c479acd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a3bf797b-36ea-4650-a42d-8ba4379b0a25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.7889547} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53f9b026-13c8-4358-8a52-e63b5c84c786","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.78919} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? 200 40ms","method":"GET","requestID":"26db25e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":40,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 36ms","method":"POST","requestID":"b8b3a105657c91080ff2bfea5c2649f3","responseTime":36,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26db9b10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling 200 38ms","method":"POST","requestID":"26db9b10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? 200 41ms","method":"GET","requestID":"26db4cf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":41,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26e1dca0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26e22ac0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.202","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"level":"info","message":"POST /experiments? 201 198ms","method":"POST","requestID":"b8b3a105657c91080ff2bfea5c2649f3","responseTime":198,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"cc1695f4ffc1e7106acf990828fa9790"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cc1695f4ffc1e7106acf990828fa9790","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71ebbcb4-f639-4e70-9a1d-f8ad1d73a058","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8029962} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a3f8259c-dc9d-49d4-84e9-76a9969a8a07","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8029966} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"cc1695f4ffc1e7106acf990828fa9790"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.811964,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.907272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26e1dca0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"26e1dca0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26e22ac0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"26e22ac0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.962943,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26e1dca0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling 200 14ms","method":"POST","requestID":"26e1dca0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26e22ac0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cc1695f4ffc1e7106acf990828fa9790","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling 200 37ms","method":"POST","requestID":"26e22ac0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"cc1695f4ffc1e7106acf990828fa9790","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.220902381Z"}]},"request_id":"534d1cfe-d0cc-4024-9656-ffee5ab4717d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8357174} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"cc1695f4ffc1e7106acf990828fa9790","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"cc1695f4ffc1e7106acf990828fa9790"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cc1695f4ffc1e7106acf990828fa9790"} device-1 | {"level":"info","message":"GET /devices/455f27bd-5277-4ce2-833d-81c59b395cab? 200 35ms","method":"GET","requestID":"cc1695f4ffc1e7106acf990828fa9790","responseTime":35,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26e8ba70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0","level":"info","message":"auth send jwt","requestID":"feba38191da210ec7d8e027eb0013ba0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"feba38191da210ec7d8e027eb0013ba0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"feba38191da210ec7d8e027eb0013ba0"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ef07b6e4-521d-4b9e-a9f5-d2dad3f0bd4b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8433654} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.111869,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26e8ba70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"26e8ba70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.57945,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"feba38191da210ec7d8e027eb0013ba0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"feba38191da210ec7d8e027eb0013ba0","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26e8ba70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling 200 10ms","method":"POST","requestID":"26e8ba70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:26:56.263569223Z"}]},"request_id":"e9f76c9d-d113-42a1-9d27-9c65c135773b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8497436} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Building connection plan","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} 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":"46fe4384-94c0-4742-b13b-5f3ae65805cd"},{"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":"31e23ea5-07a0-4384-b8a1-fb05c52a3bf6"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ec67896a-2b56-47a9-bed2-9c864fa4a7f0"}]},"level":"info","message":"Built pairwise service configurations","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} 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/455f27bd-5277-4ce2-833d-81c59b395cab"},{"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/1c3abba2-4561-4883-a2c3-3b1dcd36ee51"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"feba38191da210ec7d8e027eb0013ba0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"feba38191da210ec7d8e027eb0013ba0"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} gateway-1 | {"time_local":"14/Mar/2025:16:26:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"feba38191da210ec7d8e027eb0013ba0"} device-1 | {"level":"info","message":"GET /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51? 200 11ms","method":"GET","requestID":"feba38191da210ec7d8e027eb0013ba0","responseTime":11,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51?"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.78754,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969618,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYxOH0.Yfd6l-3g8VbwdFoonWLF-hPK06IRDkbDFfJVKSkjHF0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"d6f07cd3-e075-4bfa-b2bb-007c290b7397","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.8859196} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1dbb73a0-fb71-4a61-b76b-9bff5946f5f4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.88614} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8'","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8'","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"26eab640-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"b8b3a105657c91080ff2bfea5c2649f3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26f90e20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"42d99484-ec99-4698-b60d-7cfba6ebaf79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.950415} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.334433,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26f90e20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"26f90e20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26f90e20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling 200 32ms","method":"POST","requestID":"26f90e20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"26fe3e40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b21cb20f-6f5e-410b-acaa-934392604880","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969618.9850032} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.850399,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:26:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26fe3e40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"content":{"sdp":"v=0\r\no=- 4135644686550937092 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:5cUv\r\na=ice-pwd:20MQMLnmgkZ/UMPrKKVITAg6\r\na=ice-options:trickle\r\na=fingerprint:sha-256 9E:F2:88:6B:32:E5:58:1B:6C:39:98:EA:15:67:13:A5:49:99:58:C6:06:A8:69:4E:8F:97:1E:88:B4:90:93:BA\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"26fe3e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"26fe3e40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling 200 11ms","method":"POST","requestID":"26fe3e40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling"} device-1 | {"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bd78b9cf6ee1678efb06d27a52036f04","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bd78b9cf6ee1678efb06d27a52036f04","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/455f27bd-5277-4ce2-833d-81c59b395cab"},{"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/1c3abba2-4561-4883-a2c3-3b1dcd36ee51"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"}}},"level":"info","message":"received a callback","requestID":"bd78b9cf6ee1678efb06d27a52036f04"} device-1 | {"content":{"candidate":"candidate:630106686 1 udp 2113937151 ed2c1a44-c667-472f-ba06-0111667e44c2.local 45871 typ host generation 0 ufrag 5cUv network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"bd78b9cf6ee1678efb06d27a52036f04","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd78b9cf6ee1678efb06d27a52036f04"} device-1 | {"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c4597e21c2c00e09d0807bcd229445a8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c4597e21c2c00e09d0807bcd229445a8","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab"},{"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/1c3abba2-4561-4883-a2c3-3b1dcd36ee51"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"}}},"level":"info","message":"received a callback","requestID":"c4597e21c2c00e09d0807bcd229445a8"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"282e59d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:00Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc402fa7d-39ad-4037-ade5-f09c9e7e81e8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cb69a0f7-5c52-4181-99ba-077d5ce86bec","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969620.9776003} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.207267,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"282e59d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"282e59d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"282e59d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8 200 8ms","method":"GET","requestID":"282e59d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"c4597e21c2c00e09d0807bcd229445a8","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch","requestID":"c4597e21c2c00e09d0807bcd229445a8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28325170-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9ac10315-da17-48ae-8b2a-f1797afbe3e4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.0033758} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.154429,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"28325170-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"28325170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28325170-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling 200 8ms","method":"POST","requestID":"28325170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2833b100-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8dd729b8-5484-407e-a321-554699b4bc6c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.0123818} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.189608,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2833b100-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2833b100-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2833b100-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling 200 8ms","method":"POST","requestID":"2833b100-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M","level":"info","message":"auth send jwt","requestID":"0ca06170a8735392012e7b0e518968f9"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0ca06170a8735392012e7b0e518968f9","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","requestID":"0ca06170a8735392012e7b0e518968f9"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.69211,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0ca06170a8735392012e7b0e518968f9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969621,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0ca06170a8735392012e7b0e518968f9","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","requestID":"0ca06170a8735392012e7b0e518968f9"} experiment-1 | {"level":"info","message":"GET /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd 200 33ms","method":"GET","requestID":"0ca06170a8735392012e7b0e518968f9","responseTime":33,"status":200,"url":"/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ca06170a8735392012e7b0e518968f9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M","level":"info","message":"auth send jwt","requestID":"976bc17eb2af5df2a6f83724882f29cc"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"976bc17eb2af5df2a6f83724882f29cc","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","requestID":"976bc17eb2af5df2a6f83724882f29cc"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.739072,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"976bc17eb2af5df2a6f83724882f29cc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969621,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"976bc17eb2af5df2a6f83724882f29cc","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Attempting to finish experiment","requestID":"976bc17eb2af5df2a6f83724882f29cc"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.662208,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969621,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8","device":"1c3abba2-4561-4883-a2c3-3b1dcd36ee51","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"455f27bd-5277-4ce2-833d-81c59b395cab","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c402fa7d-39ad-4037-ade5-f09c9e7e81e8","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc402fa7d-39ad-4037-ade5-f09c9e7e81e8': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc402fa7d-39ad-4037-ade5-f09c9e7e81e8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"a9859552-d812-4c7c-9cf8-0afad764afd7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.148774} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"446cff0bfa95a8c18f28750eb159ba85","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a725a24-8654-4a81-88f0-f9ed76105b70","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.1489956} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"446cff0bfa95a8c18f28750eb159ba85","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"395f1e3bf9ff0b8fb66f6937d79e6212","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab"},{"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/1c3abba2-4561-4883-a2c3-3b1dcd36ee51"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"}}},"level":"info","message":"received a callback","requestID":"446cff0bfa95a8c18f28750eb159ba85"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"395f1e3bf9ff0b8fb66f6937d79e6212","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/relations/update"} 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/455f27bd-5277-4ce2-833d-81c59b395cab"},{"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/1c3abba2-4561-4883-a2c3-3b1dcd36ee51"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"}}},"level":"info","message":"received a callback","requestID":"395f1e3bf9ff0b8fb66f6937d79e6212"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8 204 75ms","method":"DELETE","requestID":"28434160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":75,"status":204,"url":"/peerconnections/c402fa7d-39ad-4037-ade5-f09c9e7e81e8"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"},"level":"info","message":"Successfully finished experiment","requestID":"976bc17eb2af5df2a6f83724882f29cc"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2850d5f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F455f27bd-5277-4ce2-833d-81c59b395cab","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1083e892-b99e-474f-848a-bb37d1c39678","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.2042444} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.045195,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2850d5f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2850d5f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2850d5f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling 200 9ms","method":"POST","requestID":"2850d5f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/455f27bd-5277-4ce2-833d-81c59b395cab/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"28562d20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa37fba3b-04dc-4c5f-a909-3dd23c479acd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa37fba3b-04dc-4c5f-a909-3dd23c479acd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"8d110f14-5da5-4538-8277-fa963cc08ff0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.2360198} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b7d26db6-7a46-4f94-9441-712f1c8f35a9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.2362862} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"976bc17eb2af5df2a6f83724882f29cc","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1c3abba2-4561-4883-a2c3-3b1dcd36ee51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ecbdb090-c7f8-41a2-8abb-976440dc8563","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.2383409} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.188787,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"28562d20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"28562d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"28562d20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling 200 8ms","method":"POST","requestID":"28562d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd","requestID":"976bc17eb2af5df2a6f83724882f29cc"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.237","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"976bc17eb2af5df2a6f83724882f29cc"} experiment-1 | {"level":"info","message":"DELETE /experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd 204 235ms","method":"DELETE","requestID":"976bc17eb2af5df2a6f83724882f29cc","responseTime":235,"status":204,"url":"/experiments/a37fba3b-04dc-4c5f-a909-3dd23c479acd"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2579","request_time":"4.156","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"e5214ecc1c92b1bf5bac892f2c15bed1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"446cff0bfa95a8c18f28750eb159ba85","responseTime":188,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"395f1e3bf9ff0b8fb66f6937d79e6212","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"395f1e3bf9ff0b8fb66f6937d79e6212"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M","level":"info","message":"auth send jwt","requestID":"885482c47659154e90780bc7d1f7c75c"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"446cff0bfa95a8c18f28750eb159ba85"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"885482c47659154e90780bc7d1f7c75c"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.849181,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"885482c47659154e90780bc7d1f7c75c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969621,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/455f27bd-5277-4ce2-833d-81c59b395cab' closed"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2396","request_time":"2.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":"4eae84e79b456aad5291ff2f1a89fdbc"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0a6f0a1b-27a1-4a7f-99d0-58f6b7da2f25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.3594568} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdd3a323-bdbe-4143-b97f-3d0c087caec0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.3647294} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/1c3abba2-4561-4883-a2c3-3b1dcd36ee51' closed"} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"04c354e0-c8a6-459b-b859-d6fad3896d51","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.377884} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc1473eb-5e30-47aa-8b52-d9f94b13fc0d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.378113} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"7e4a9ca8-3fe5-413f-ab7b-485483c96b19","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.3824177} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"885482c47659154e90780bc7d1f7c75c"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"885482c47659154e90780bc7d1f7c75c"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"885482c47659154e90780bc7d1f7c75c","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M","level":"info","message":"auth send jwt","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.695153,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969621,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMX0.2UiLI0rLs5WbXOVjOXB_jay2JaKwiD9U6AB3_I8Ax5M"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"07b5e051-b720-4292-9a96-fd7be96b66a4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.4032485} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"566e01a5-6381-41e8-af65-86abf54bfe7d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.4080482} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"1c0e0670-e9d9-43f5-a7da-42637afaa7fc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.4166358} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"13a8061a-4d13-4cb7-ac3b-55b1c894b02f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.4169154} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"86d44ab9-ea6f-4f22-8f1d-18db15b82e58","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969621.4218109} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825"} gateway-1 | {"time_local":"14/Mar/2025:16:27:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825"} device-1 | {"level":"info","message":"POST /devices? 201 35ms","method":"POST","requestID":"fcb2ea9bcfd81d85c03ee7dd55530825","responseTime":35,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"28b101fcc360d70cf79351384123526e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"28b101fcc360d70cf79351384123526e","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"28b101fcc360d70cf79351384123526e"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661637,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"28b101fcc360d70cf79351384123526e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"28b101fcc360d70cf79351384123526e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.604239,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"17f2a045-dbd0-445f-a63f-1e2c3eedade0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.2583652} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"28b101fcc360d70cf79351384123526e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"1c7ac765-deb7-422b-9c8a-4d10e44abb19","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.2592027} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f15c412f-412f-4d4f-aec5-bf3f5f639fc9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.263042} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"28b101fcc360d70cf79351384123526e","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f34b2e8-a8c6-458d-8e26-1e4cd71ca850","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.289671} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":30,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"1ce46787-cb94-4f7e-b2b5-8a76a1f5fc84","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.2915008} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab"} device-1 | {"level":"info","message":"PATCH /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8 200 44ms","method":"PATCH","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab","responseTime":44,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"112aa7df6d9ee19f1f4a2c6387a43eab"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"27ef40530580fbc0069a431cfdff9b38"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"27ef40530580fbc0069a431cfdff9b38","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"27ef40530580fbc0069a431cfdff9b38"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"62db1753-9761-4e12-8ba5-9126ac954f08","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.3005264} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"28b101fcc360d70cf79351384123526e","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.693611,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"28b101fcc360d70cf79351384123526e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"28b101fcc360d70cf79351384123526e"} device-1 | {"level":"info","message":"PATCH /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9 200 54ms","method":"PATCH","requestID":"28b101fcc360d70cf79351384123526e","responseTime":54,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"27ef40530580fbc0069a431cfdff9b38","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"27ef40530580fbc0069a431cfdff9b38","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"6401097be2eabb03a138cd50c5ca9aa4"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6401097be2eabb03a138cd50c5ca9aa4","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6401097be2eabb03a138cd50c5ca9aa4"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.684695,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6401097be2eabb03a138cd50c5ca9aa4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6401097be2eabb03a138cd50c5ca9aa4","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"27ef40530580fbc0069a431cfdff9b38"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"27ef40530580fbc0069a431cfdff9b38"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/websocket 200 43ms","method":"POST","requestID":"27ef40530580fbc0069a431cfdff9b38","responseTime":43,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6401097be2eabb03a138cd50c5ca9aa4"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/websocket 200 42ms","method":"POST","requestID":"6401097be2eabb03a138cd50c5ca9aa4","responseTime":42,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"6401097be2eabb03a138cd50c5ca9aa4"} device-1 | {"level":"info","message":"device 'http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"a2011b41348e21f2251969d01b4f692e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a2011b41348e21f2251969d01b4f692e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a2011b41348e21f2251969d01b4f692e"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.673103,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a2011b41348e21f2251969d01b4f692e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"a2011b41348e21f2251969d01b4f692e","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"8df7e3c2-6de8-42b5-b68e-99a164a69b5e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.3998916} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a2011b41348e21f2251969d01b4f692e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a2011b41348e21f2251969d01b4f692e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a2011b41348e21f2251969d01b4f692e"} device-1 | {"level":"info","message":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? 200 9ms","method":"GET","requestID":"a2011b41348e21f2251969d01b4f692e","responseTime":9,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.942711,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e2fd9373da2a0b7995d15f01e6cef5e2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"7ead6e45-3483-4b0f-9978-869023ee31c4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.4382105} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2"} device-1 | {"level":"info","message":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? 200 34ms","method":"GET","requestID":"e2fd9373da2a0b7995d15f01e6cef5e2","responseTime":34,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"283ab793b717c368fac2f664ed9fa628"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"283ab793b717c368fac2f664ed9fa628","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"283ab793b717c368fac2f664ed9fa628"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.723793,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"283ab793b717c368fac2f664ed9fa628","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"283ab793b717c368fac2f664ed9fa628","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to run experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to book experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully booked experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.671394,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.559646,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"c718c6b4-fb64-4959-89b5-77213e1e5002","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.50366} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"aeb01430-f275-4ad2-8d04-01502ad2c867","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.5289955} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? 200 40ms","method":"GET","requestID":"291696f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":40,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? 200 40ms","method":"GET","requestID":"2916be00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":40,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Setting up experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully locked booking for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to update booking for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully updated booking for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully set up experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully running experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"292abb30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:34398","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699703,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.505948,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c534b60-0b22-4feb-8812-fef722ea3798","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6349444} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"8ba49833-1ad7-4949-85d5-df613049ed32","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.635034} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.711689,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"292abb30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"292abb30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"eece0c18-160c-43e7-a61f-d9c96a7b50be","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6359923} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F69199f9f-156e-46f7-beca-1c769a5e2b5e#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F69199f9f-156e-46f7-beca-1c769a5e2b5e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"dab31d16-cdb1-4612-a359-70dc74dee977","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.640436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"66845a72-cda5-41f6-8fa4-937ee9fa1496","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.640577} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"292abb30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling 200 14ms","method":"POST","requestID":"292abb30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"283ab793b717c368fac2f664ed9fa628","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? 200 16ms","method":"GET","requestID":"292a9420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":16,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? 200 43ms","method":"GET","requestID":"29269c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"292d5340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b2ebdcf8-8e88-462f-a14d-127edd3ba582","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6480944} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.695452,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2931c010-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"292d5340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"292d5340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"283ab793b717c368fac2f664ed9fa628"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.234","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"level":"info","message":"POST /experiments? 201 231ms","method":"POST","requestID":"283ab793b717c368fac2f664ed9fa628","responseTime":231,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"292d5340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling 200 33ms","method":"POST","requestID":"292d5340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6cbd9b62-bdd0-467b-aafc-05ea7ccc8b56","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6773512} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.927412,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2931c010-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2931c010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"8d6acaf5904190a2eec4dd22e17f62b5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8d6acaf5904190a2eec4dd22e17f62b5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8d6acaf5904190a2eec4dd22e17f62b5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2931c010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling 200 10ms","method":"POST","requestID":"2931c010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.762515,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8d6acaf5904190a2eec4dd22e17f62b5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d6acaf5904190a2eec4dd22e17f62b5","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"293394d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.377861700Z"}]},"request_id":"160bb006-b1e8-46bc-8f4d-5a909864b6b9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6885846} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"989a8e04-53d0-4a8b-973b-6c5a3e59c7ee","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.6887093} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d6acaf5904190a2eec4dd22e17f62b5","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.57206,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"293394d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"293394d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8d6acaf5904190a2eec4dd22e17f62b5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d6acaf5904190a2eec4dd22e17f62b5"} device-1 | {"level":"info","message":"GET /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9? 200 11ms","method":"GET","requestID":"8d6acaf5904190a2eec4dd22e17f62b5","responseTime":11,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"293394d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling 200 8ms","method":"POST","requestID":"293394d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Building connection plan","requestID":"283ab793b717c368fac2f664ed9fa628"} 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":"a06c8534-916c-452c-817a-58bbf8e89012"},{"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":"e4d50f37-7233-4e75-bee5-3da8dae2b9b4"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"989d03ba-cc0f-4555-b245-5adb5f6a3dbb"}]},"level":"info","message":"Built pairwise service configurations","requestID":"283ab793b717c368fac2f664ed9fa628"} 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/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"},{"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/396cfdca-13c4-4f47-b350-7b10b2a6def8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"283ab793b717c368fac2f664ed9fa628"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM","level":"info","message":"auth send jwt","requestID":"c6589421ca8ff62d28c34062d1a68b13"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c6589421ca8ff62d28c34062d1a68b13","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c6589421ca8ff62d28c34062d1a68b13"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.615198,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.552926,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c6589421ca8ff62d28c34062d1a68b13","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969622,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyMn0.sWTiY11L65Nw1aEGXY_swLbjFYCa0ItitKKsnyjWXwM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c6589421ca8ff62d28c34062d1a68b13","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:01.416606763Z"}]},"request_id":"7912c995-54b2-45d0-ab1d-d6169ed75412","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.7273886} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c6589421ca8ff62d28c34062d1a68b13","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c6589421ca8ff62d28c34062d1a68b13"} gateway-1 | {"time_local":"14/Mar/2025:16:27:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c6589421ca8ff62d28c34062d1a68b13"} device-1 | {"level":"info","message":"GET /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8? 200 9ms","method":"GET","requestID":"c6589421ca8ff62d28c34062d1a68b13","responseTime":9,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"bc4d7adf-6d6d-462f-8a17-7d5be38cb0fe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.7311378} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25da285f-02b2-4c34-bbcd-0d23b61fc310","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.7313533} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0'","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0'","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"29351b70-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"283ab793b717c368fac2f664ed9fa628"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2947e020-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"097746c7-63f6-4ade-b460-89c9aa77d866","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.8223572} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.486577,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2947e020-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2947e020-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2947e020-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling 200 8ms","method":"POST","requestID":"2947e020-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"29493fb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2f7e84ab-c869-4c4a-a2aa-4c36b9649c8e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969622.832218} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.073649,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"29493fb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"29493fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"29493fb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling 200 8ms","method":"POST","requestID":"29493fb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling"} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"57e21aaeedd6a58bc5c0198929747f62","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"57e21aaeedd6a58bc5c0198929747f62","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/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"},{"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/396cfdca-13c4-4f47-b350-7b10b2a6def8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"}}},"level":"info","message":"received a callback","requestID":"57e21aaeedd6a58bc5c0198929747f62"} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"57e21aaeedd6a58bc5c0198929747f62","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"57e21aaeedd6a58bc5c0198929747f62"} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7f760c4bc6b47bbfb2ae4a7b4c0d1a7d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"7f760c4bc6b47bbfb2ae4a7b4c0d1a7d","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"},{"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/396cfdca-13c4-4f47-b350-7b10b2a6def8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"}}},"level":"info","message":"received a callback","requestID":"7f760c4bc6b47bbfb2ae4a7b4c0d1a7d"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2a801200-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef6ae95e-4fa3-46e3-887d-0b62167533c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60425eab-644b-49b2-aae6-93e4d5dff3bf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969624.868586} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.119612,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2a801200-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2a801200-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2a801200-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0 200 7ms","method":"GET","requestID":"2a801200-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 32ms","method":"POST","requestID":"7f760c4bc6b47bbfb2ae4a7b4c0d1a7d","responseTime":32,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"7f760c4bc6b47bbfb2ae4a7b4c0d1a7d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a847ed0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b806ddeb-75bb-4343-8768-8c23b7425622","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969624.8982887} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.660651,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2a847ed0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2a847ed0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a847ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling 200 10ms","method":"POST","requestID":"2a847ed0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2a862c80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7f5a3595-2f1a-48e0-bdb0-31055f72f71f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969624.9085202} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.340255,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2a862c80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2a862c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2a862c80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling 200 8ms","method":"POST","requestID":"2a862c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNH0.q6uQGDGyuMT7gjNEHYGds5eD7be4RZ2lnqWhcHmnnJA","level":"info","message":"auth send jwt","requestID":"3789e3f23fc875db53acb860a76856f1"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3789e3f23fc875db53acb860a76856f1","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","requestID":"3789e3f23fc875db53acb860a76856f1"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.841781,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3789e3f23fc875db53acb860a76856f1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969624,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNH0.q6uQGDGyuMT7gjNEHYGds5eD7be4RZ2lnqWhcHmnnJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3789e3f23fc875db53acb860a76856f1","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","requestID":"3789e3f23fc875db53acb860a76856f1"} gateway-1 | {"time_local":"14/Mar/2025:16:27:04 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3789e3f23fc875db53acb860a76856f1"} experiment-1 | {"level":"info","message":"GET /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e 200 32ms","method":"GET","requestID":"3789e3f23fc875db53acb860a76856f1","responseTime":32,"status":200,"url":"/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNH0.q6uQGDGyuMT7gjNEHYGds5eD7be4RZ2lnqWhcHmnnJA","level":"info","message":"auth send jwt","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.944207,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:04Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969624,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNH0.q6uQGDGyuMT7gjNEHYGds5eD7be4RZ2lnqWhcHmnnJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Attempting to finish experiment","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.646844,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969624,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNH0.q6uQGDGyuMT7gjNEHYGds5eD7be4RZ2lnqWhcHmnnJA"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"396cfdca-13c4-4f47-b350-7b10b2a6def8","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"27a3940c-fc39-4ab9-b0f7-dcb357c574b9","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef6ae95e-4fa3-46e3-887d-0b62167533c0': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fef6ae95e-4fa3-46e3-887d-0b62167533c0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"2d7301f3-d42f-4a69-aaa9-be803a2e310d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.0417738} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"6a37f1fe49c2d284ef22a2d966977746","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d1c1e3d2-15e1-4abf-a50c-a05dab625d92","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.0421205} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6a37f1fe49c2d284ef22a2d966977746","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"409023f2e217802add113f0fdf5738e8","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"409023f2e217802add113f0fdf5738e8","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/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"}}},"level":"info","message":"received a callback","requestID":"6a37f1fe49c2d284ef22a2d966977746"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"}}},"level":"info","message":"received a callback","requestID":"409023f2e217802add113f0fdf5738e8"} device-1 | {"data":{"peerconnection":"ef6ae95e-4fa3-46e3-887d-0b62167533c0","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0 204 59ms","method":"DELETE","requestID":"2a98f130-00f1-11f0-9a2b-c98a3cf1c544","responseTime":59,"status":204,"url":"/peerconnections/ef6ae95e-4fa3-46e3-887d-0b62167533c0"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"},"level":"info","message":"Successfully finished experiment","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2aa79730-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F27a3940c-fc39-4ab9-b0f7-dcb357c574b9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98484030-1f6a-4f1e-9be8-6026e052efb0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.1268034} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.269212,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2aa79730-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2aa79730-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2aa79730-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling 200 7ms","method":"POST","requestID":"2aa79730-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2aa91dd0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F69199f9f-156e-46f7-beca-1c769a5e2b5e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F69199f9f-156e-46f7-beca-1c769a5e2b5e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"f80c4ee1-1d27-4fca-9032-44e4ef490d79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.1341076} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e3c795ae-d9a5-4545-9ce2-63ea81618219","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.1342628} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F396cfdca-13c4-4f47-b350-7b10b2a6def8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"632aa474-b167-47fe-abb7-8f76aef4ce42","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.1372178} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.215399,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2aa91dd0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2aa91dd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2aa91dd0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling 200 8ms","method":"POST","requestID":"2aa91dd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.220","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a"} experiment-1 | {"level":"info","message":"DELETE /experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e 204 217ms","method":"DELETE","requestID":"3722c68cc83ed7fbcbdc4bd92e7b851a","responseTime":217,"status":204,"url":"/experiments/69199f9f-156e-46f7-beca-1c769a5e2b5e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2401","request_time":"2.866","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"67ee8f17b82d947438035b09f1252b5e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2403","request_time":"2.857","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"09894c20025f986fe63fdbc24ae93dd4"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 166ms","method":"POST","requestID":"6a37f1fe49c2d284ef22a2d966977746","responseTime":166,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.169","http_referrer":"","http_user_agent":"node-fetch","requestID":"6a37f1fe49c2d284ef22a2d966977746"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 166ms","method":"POST","requestID":"409023f2e217802add113f0fdf5738e8","responseTime":166,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.170","http_referrer":"","http_user_agent":"node-fetch","requestID":"409023f2e217802add113f0fdf5738e8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNX0.SysyJ0FhQJwHJA-r5CkdZMgjOq2UYCTd-6FONAjk15s","level":"info","message":"auth send jwt","requestID":"4faa7797022dc742de801363d840e5f8"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/27a3940c-fc39-4ab9-b0f7-dcb357c574b9' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"4faa7797022dc742de801363d840e5f8"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.73997,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4faa7797022dc742de801363d840e5f8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969625,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNX0.SysyJ0FhQJwHJA-r5CkdZMgjOq2UYCTd-6FONAjk15s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/396cfdca-13c4-4f47-b350-7b10b2a6def8' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ba7e8398-2e14-4e5f-a27d-3ed4c6a51181","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2352571} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4553fe50-2e68-4ace-9ff6-1e42888922c0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2403655} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"9c561e79-68bf-4a2c-a17c-8cd3f3d4da0a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2505913} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"87c56b3f-0e0d-446c-b1f2-b259f74a8e4c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2508328} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"f9c48eff-f558-4e3c-9279-454d21a768a3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.25565} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"4faa7797022dc742de801363d840e5f8"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"4faa7797022dc742de801363d840e5f8","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4faa7797022dc742de801363d840e5f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNX0.SysyJ0FhQJwHJA-r5CkdZMgjOq2UYCTd-6FONAjk15s","level":"info","message":"auth send jwt","requestID":"e256ec97932ee20fd4f30fdc25ec51e4"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e256ec97932ee20fd4f30fdc25ec51e4"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.757513,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e256ec97932ee20fd4f30fdc25ec51e4","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969625,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNX0.SysyJ0FhQJwHJA-r5CkdZMgjOq2UYCTd-6FONAjk15s"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b5664a15-2a33-4dd0-ae57-815968ec2779","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.277964} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2aec9d7-371e-4c18-adf5-14ba9718a5e8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2832694} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"5124f3f9-a70b-43da-a94c-8cce22fe5386","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.294436} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"348b50af-f8d0-472f-9b0b-eaebccf4f985","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.2953022} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":20,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"9ded268a-6c8f-4b2b-b162-23c72a087294","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969625.3060315} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e256ec97932ee20fd4f30fdc25ec51e4"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"e256ec97932ee20fd4f30fdc25ec51e4","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e256ec97932ee20fd4f30fdc25ec51e4"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":28,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"86cd6362d79e54d25c94a892c670dad1"} authentication-1 | {"level":"info","message":"GET /auth 200 28ms","method":"GET","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":28,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"86cd6362d79e54d25c94a892c670dad1"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.091504,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662813,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"86cd6362d79e54d25c94a892c670dad1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"d57d413e-e8a0-425c-aff7-f6d27d397960","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.1889653} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"603882fb-6fcd-4b61-8622-f574a07587d9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.1894925} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8a9d758b-4ca8-44bd-a52b-a3c0b969f399","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.192928} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ea7fba74-c79d-480c-82f9-ff5f4388b8a2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.1937633} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"b1e7ae2d-9900-4082-97f7-07f1ce933aae","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.1965995} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"86cd6362d79e54d25c94a892c670dad1"} device-1 | {"level":"info","message":"PATCH /devices/922975df-829b-42a2-838f-cc653dc7a3c0 200 18ms","method":"PATCH","requestID":"86cd6362d79e54d25c94a892c670dad1","responseTime":18,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/922975df-829b-42a2-838f-cc653dc7a3c0 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.049","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"86cd6362d79e54d25c94a892c670dad1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":20.808943,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a4b6a296da772d0d4c895ba7af5d5e7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"8c57d3e4-3595-42cf-b1fb-c5a64ef1f369","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.2312622} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.084","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d"} device-1 | {"level":"info","message":"PATCH /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d 200 54ms","method":"PATCH","requestID":"9ae551afaa8d50c29ec34b9d9b84e77d","responseTime":54,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.040","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/websocket 200 38ms","method":"POST","requestID":"3a4b6a296da772d0d4c895ba7af5d5e7","responseTime":38,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/websocket"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.874776,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.013","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/websocket 200 9ms","method":"POST","requestID":"c192fc30dbb81d4b2dbb8a5ae47a0d46","responseTime":9,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"c0b6cb46da84a9f5cd918059ecbf03db"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c0b6cb46da84a9f5cd918059ecbf03db","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c0b6cb46da84a9f5cd918059ecbf03db"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.698756,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c0b6cb46da84a9f5cd918059ecbf03db","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c0b6cb46da84a9f5cd918059ecbf03db","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"be54f201-2983-4fa7-8a40-c361508a5726","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.2955399} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c0b6cb46da84a9f5cd918059ecbf03db","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c0b6cb46da84a9f5cd918059ecbf03db"} device-1 | {"level":"info","message":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? 200 33ms","method":"GET","requestID":"c0b6cb46da84a9f5cd918059ecbf03db","responseTime":33,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c0b6cb46da84a9f5cd918059ecbf03db"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688261,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"dd8f057f-fffc-4a00-8e3f-d7e3c3790bdb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.33281} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026"} device-1 | {"level":"info","message":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? 200 9ms","method":"GET","requestID":"d4e6d8fb12b2bdc0ec47d75663d7f026","responseTime":9,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a9d45205363c5a77ebf83bff23b8d13a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.647115,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a9d45205363c5a77ebf83bff23b8d13a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a9d45205363c5a77ebf83bff23b8d13a","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to run experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to book experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully booked experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.881053,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.609011,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"7fbec713-198b-4bc8-850f-d7e5a6f12215","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.4195857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"3ef5079e-fd35-4bab-9748-75ab2ed9ab7b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.420039} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? 200 31ms","method":"GET","requestID":"2b693980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? 200 31ms","method":"GET","requestID":"2b696090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Setting up experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully locked booking for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to update booking for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully updated booking for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully set up experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b779160-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully running experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.909552,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.899155,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6c75d297-ea73-41db-ba39-dd93673eade6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5163476} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.688136,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b779160-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2b779160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b779160-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling 200 35ms","method":"POST","requestID":"2b779160-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"1e721aa3-110f-4c9d-ac58-3792c1c8f53c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5205097} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"92e4096b-f53f-4d4f-8ed5-d327ce26f5eb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5219088} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b7d5dc0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c294452-7e27-4769-8e3b-2c4873f29607#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c294452-7e27-4769-8e3b-2c4873f29607","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"e614a38a-22c7-4f61-b0f8-aeccc55a7b65","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5259244} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f69fc1ad-b951-438e-9dcf-7845719179c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5261874} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? 200 45ms","method":"GET","requestID":"2b774340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":45,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"a9d45205363c5a77ebf83bff23b8d13a","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c36b1e96-8878-4a38-a085-ff37633a45f4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5287163} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.507678,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} device-1 | {"level":"info","message":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? 200 45ms","method":"GET","requestID":"2b776a50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":45,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b7d5dc0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2b7d5dc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b7d5dc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling 200 9ms","method":"POST","requestID":"2b7d5dc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b7ebd50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.225","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dc4d90ce-4fef-422c-989b-53de7a27f8b2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5621214} experiment-1 | {"data":{"experiment":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.623293,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b7ebd50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"POST /experiments? 201 221ms","method":"POST","requestID":"a9d45205363c5a77ebf83bff23b8d13a","responseTime":221,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"2b7ebd50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"170e0a4ee1c0c63f0478462016cf4263"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"170e0a4ee1c0c63f0478462016cf4263","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"170e0a4ee1c0c63f0478462016cf4263"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b7ebd50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling 200 34ms","method":"POST","requestID":"2b7ebd50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.927918,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"170e0a4ee1c0c63f0478462016cf4263","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"170e0a4ee1c0c63f0478462016cf4263","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b8462a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.529502,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.250561283Z"}]},"request_id":"626362b5-af60-46fb-aeb1-947d6ff7aca5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5731354} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"391022d3-2d91-4aca-bebd-ce001793a020","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.5734642} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"170e0a4ee1c0c63f0478462016cf4263","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b8462a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2b8462a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"170e0a4ee1c0c63f0478462016cf4263"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"170e0a4ee1c0c63f0478462016cf4263"} device-1 | {"level":"info","message":"GET /devices/922975df-829b-42a2-838f-cc653dc7a3c0? 200 13ms","method":"GET","requestID":"170e0a4ee1c0c63f0478462016cf4263","responseTime":13,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b8462a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling 200 9ms","method":"POST","requestID":"2b8462a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Building connection plan","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} 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":"2e2c0797-03de-4e58-b7f7-d4eb091a901f"},{"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":"04299ceb-cd3f-45e9-8987-f8731ada330b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e9f52fd2-6482-4c3a-8e0d-7fe56af88132"}]},"level":"info","message":"Built pairwise service configurations","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} 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/922975df-829b-42a2-838f-cc653dc7a3c0"},{"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/b4d92b73-3417-40f9-8e4a-cda5776f196d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4","level":"info","message":"auth send jwt","requestID":"8a34493315c2716776c5aefd652f8418"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8a34493315c2716776c5aefd652f8418","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"8a34493315c2716776c5aefd652f8418"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:40382","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":24.830155,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800541,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8a34493315c2716776c5aefd652f8418","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969626,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyNn0.v657kt2kjKEpJt29C0yvY_ImkTkhbLppW1v8P2V52C4"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"8a34493315c2716776c5aefd652f8418","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:05.294376552Z"}]},"request_id":"484eb7ed-3e14-414e-80b9-567d938fee16","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.614608} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8a34493315c2716776c5aefd652f8418","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"8a34493315c2716776c5aefd652f8418"} gateway-1 | {"time_local":"14/Mar/2025:16:27:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a34493315c2716776c5aefd652f8418"} device-1 | {"level":"info","message":"GET /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d? 200 35ms","method":"GET","requestID":"8a34493315c2716776c5aefd652f8418","responseTime":35,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"7cc94477-ee04-4381-8dee-95f707b4c549","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.6189024} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f0b472dd-0dcd-49bc-8d25-483de732e39e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.6191196} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51'","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51'","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2b863760-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"a9d45205363c5a77ebf83bff23b8d13a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b950470-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f3997a41-6db2-420d-878f-269aaacf8a16","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.7078645} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.558095,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b950470-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2b950470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b950470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling 200 32ms","method":"POST","requestID":"2b950470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2b9a3490-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60e40b7f-f6d3-4fd8-a582-fd609e3cc398","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969626.7168598} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.192759,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b9a3490-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2b9a3490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2b9a3490-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling 200 7ms","method":"POST","requestID":"2b9a3490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling"} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"94aafd3253c246b19e2173eb5ec97c2e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"94aafd3253c246b19e2173eb5ec97c2e","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/922975df-829b-42a2-838f-cc653dc7a3c0"},{"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/b4d92b73-3417-40f9-8e4a-cda5776f196d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"}}},"level":"info","message":"received a callback","requestID":"94aafd3253c246b19e2173eb5ec97c2e"} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"94aafd3253c246b19e2173eb5ec97c2e","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"94aafd3253c246b19e2173eb5ec97c2e"} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e9ba117c26d95b175b80e5524e31e01e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e9ba117c26d95b175b80e5524e31e01e","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/922975df-829b-42a2-838f-cc653dc7a3c0"},{"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/b4d92b73-3417-40f9-8e4a-cda5776f196d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"}}},"level":"info","message":"received a callback","requestID":"e9ba117c26d95b175b80e5524e31e01e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2cd01c80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F16ea369b-e971-4d60-9f2f-ed316b243f51","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"39ec3e81-8eef-43fc-ba66-6d4d5b913c37","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.752347} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.110359,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cd01c80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2cd01c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2cd01c80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51 200 11ms","method":"GET","requestID":"2cd01c80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"e9ba117c26d95b175b80e5524e31e01e","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"e9ba117c26d95b175b80e5524e31e01e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cd39ef0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e10b0bab-1215-41e3-acce-d37d92a64582","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.771523} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.268732,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cd39ef0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2cd39ef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cd39ef0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling 200 8ms","method":"POST","requestID":"2cd39ef0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cd52590-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cc8327cd-075c-4850-8572-986df6f2f16d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.78158} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.366123,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cd52590-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2cd52590-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cd52590-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling 200 8ms","method":"POST","requestID":"2cd52590-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOH0.UKeoZ9_j-nHEg9XUF_5UbhllSGS4Q2Pa3TAjQTX15d4","level":"info","message":"auth send jwt","requestID":"188e353b7592b42fb793231468d7e5b3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"188e353b7592b42fb793231468d7e5b3","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/5c294452-7e27-4769-8e3b-2c4873f29607","requestID":"188e353b7592b42fb793231468d7e5b3"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.630738,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"188e353b7592b42fb793231468d7e5b3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969628,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOH0.UKeoZ9_j-nHEg9XUF_5UbhllSGS4Q2Pa3TAjQTX15d4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"188e353b7592b42fb793231468d7e5b3","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/5c294452-7e27-4769-8e3b-2c4873f29607","requestID":"188e353b7592b42fb793231468d7e5b3"} gateway-1 | {"time_local":"14/Mar/2025:16:27:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/5c294452-7e27-4769-8e3b-2c4873f29607 HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"188e353b7592b42fb793231468d7e5b3"} experiment-1 | {"level":"info","message":"GET /experiments/5c294452-7e27-4769-8e3b-2c4873f29607 200 9ms","method":"GET","requestID":"188e353b7592b42fb793231468d7e5b3","responseTime":9,"status":200,"url":"/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOH0.UKeoZ9_j-nHEg9XUF_5UbhllSGS4Q2Pa3TAjQTX15d4","level":"info","message":"auth send jwt","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f","responseTime":23,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/5c294452-7e27-4769-8e3b-2c4873f29607","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.834272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f0b579d9b910e3b1a9ad496db2f0a08f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969628,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOH0.UKeoZ9_j-nHEg9XUF_5UbhllSGS4Q2Pa3TAjQTX15d4"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Attempting to finish experiment","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.901876,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969628,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOH0.UKeoZ9_j-nHEg9XUF_5UbhllSGS4Q2Pa3TAjQTX15d4"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4d92b73-3417-40f9-8e4a-cda5776f196d","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"922975df-829b-42a2-838f-cc653dc7a3c0","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F16ea369b-e971-4d60-9f2f-ed316b243f51': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F16ea369b-e971-4d60-9f2f-ed316b243f51","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"ed01eace-adb9-466c-9120-6d2f15f05787","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.9159696} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c535e73f-5df6-47f8-8e8e-09b6f1032351","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.9162662} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"59b3c1ad65ba5c40eb3ff6cc0cf7ce25","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"59b3c1ad65ba5c40eb3ff6cc0cf7ce25","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"79118d154249778530930cb808973f72","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"}}},"level":"info","message":"received a callback","requestID":"59b3c1ad65ba5c40eb3ff6cc0cf7ce25"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"79118d154249778530930cb808973f72","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"}}},"level":"info","message":"received a callback","requestID":"79118d154249778530930cb808973f72"} device-1 | {"data":{"peerconnection":"16ea369b-e971-4d60-9f2f-ed316b243f51","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51 204 58ms","method":"DELETE","requestID":"2ce467d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":58,"status":204,"url":"/peerconnections/16ea369b-e971-4d60-9f2f-ed316b243f51"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"},"level":"info","message":"Successfully finished experiment","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cf3aa10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F922975df-829b-42a2-838f-cc653dc7a3c0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99558f24-2134-4de7-b78b-65d51c0dab79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969628.9808125} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.212755,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:08Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cf3aa10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2cf3aa10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cf3aa10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling 200 7ms","method":"POST","requestID":"2cf3aa10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/922975df-829b-42a2-838f-cc653dc7a3c0/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2cf8b320-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c294452-7e27-4769-8e3b-2c4873f29607': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F5c294452-7e27-4769-8e3b-2c4873f29607","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"128fc773-2974-4a25-96a7-1e65644c3e82","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.0123925} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7486cf5c-3256-4edf-9523-8138af6982af","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.012533} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4d92b73-3417-40f9-8e4a-cda5776f196d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"802db8f2-89cb-45e7-93dc-6ddcd1d48f22","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.0146148} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.244324,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2cf8b320-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2cf8b320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2cf8b320-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling 200 8ms","method":"POST","requestID":"2cf8b320-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/5c294452-7e27-4769-8e3b-2c4873f29607","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} gateway-1 | {"time_local":"14/Mar/2025:16:27:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/5c294452-7e27-4769-8e3b-2c4873f29607 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.267","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f"} experiment-1 | {"level":"info","message":"DELETE /experiments/5c294452-7e27-4769-8e3b-2c4873f29607 204 244ms","method":"DELETE","requestID":"f0b579d9b910e3b1a9ad496db2f0a08f","responseTime":244,"status":204,"url":"/experiments/5c294452-7e27-4769-8e3b-2c4873f29607"} gateway-1 | {"time_local":"14/Mar/2025:16:27:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2401","request_time":"2.837","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"c9294021adf9d852872ac7fbd7a94e3f"} gateway-1 | {"time_local":"14/Mar/2025:16:27:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2403","request_time":"2.868","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"3f326f5c53f9d35f29b5c1ad6eccb9c2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 193ms","method":"POST","requestID":"59b3c1ad65ba5c40eb3ff6cc0cf7ce25","responseTime":193,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"59b3c1ad65ba5c40eb3ff6cc0cf7ce25"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 193ms","method":"POST","requestID":"79118d154249778530930cb808973f72","responseTime":193,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.197","http_referrer":"","http_user_agent":"node-fetch","requestID":"79118d154249778530930cb808973f72"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOX0.wbDlYfsaRzKIfV7jDpkNzRMDL8omLLjGJIPWjNJjCfU","level":"info","message":"auth send jwt","requestID":"1408f99be2872a1a59c96a6adbe3133f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"1408f99be2872a1a59c96a6adbe3133f"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b4d92b73-3417-40f9-8e4a-cda5776f196d' closed"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.91768,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1408f99be2872a1a59c96a6adbe3133f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969629,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOX0.wbDlYfsaRzKIfV7jDpkNzRMDL8omLLjGJIPWjNJjCfU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/922975df-829b-42a2-838f-cc653dc7a3c0' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e0f2f589-b9cf-4919-874d-dcd5d2c4aa3c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.155092} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"40f0872b-f8d2-44d5-9f6f-8851df985158","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.1607845} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"bcdbbffb-898b-4006-bfbf-3938cafa349e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.1742265} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6394a37d-a8ef-4d8d-9dba-d8b61662f050","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.1743877} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.174196666Z"}]},"request_id":"26c7c841-ab00-4008-b182-9276207ff8e5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2031658} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"1408f99be2872a1a59c96a6adbe3133f"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"1408f99be2872a1a59c96a6adbe3133f","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1408f99be2872a1a59c96a6adbe3133f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOX0.wbDlYfsaRzKIfV7jDpkNzRMDL8omLLjGJIPWjNJjCfU","level":"info","message":"auth send jwt","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa"} device-1 | {"level":"info","message":"postDevices called","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.023263,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969629,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYyOX0.wbDlYfsaRzKIfV7jDpkNzRMDL8omLLjGJIPWjNJjCfU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9716e7ca-c05b-4c7d-918a-94a20a636a01","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2497525} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":26,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d35152ed-700e-4365-8c21-366ad9e0ada1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2543116} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"07c4c525-0c80-4076-acb8-1af3228755e6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2646725} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"736e2af9-5f17-4fbd-b737-e1738625bec2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2649274} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.264648970Z"}]},"request_id":"255623f5-2caa-4fe3-bf64-9da743f9c3c2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969629.2696187} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa"} gateway-1 | {"time_local":"14/Mar/2025:16:27:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa"} device-1 | {"level":"info","message":"POST /devices? 201 62ms","method":"POST","requestID":"a62fccd6a683f76e8ed8abe389e1bcaa","responseTime":62,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"45e1e4588c859dec3da9262ab65b11a4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"45e1e4588c859dec3da9262ab65b11a4","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/websocket 200 1ms","method":"OPTIONS","requestID":"45e1e4588c859dec3da9262ab65b11a4","responseTime":1,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/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":"45e1e4588c859dec3da9262ab65b11a4"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"185ed886f6f069220cfc1624e60e32b0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"185ed886f6f069220cfc1624e60e32b0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/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":"185ed886f6f069220cfc1624e60e32b0"} device-1 | {"level":"info","message":"OPTIONS /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/websocket 200 1ms","method":"OPTIONS","requestID":"185ed886f6f069220cfc1624e60e32b0","responseTime":1,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"534a842abf8455d9b02d463247fe5989"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"534a842abf8455d9b02d463247fe5989","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"534a842abf8455d9b02d463247fe5989"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"447efffdcba9daff8fcdf4db94c275f1"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"447efffdcba9daff8fcdf4db94c275f1","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"447efffdcba9daff8fcdf4db94c275f1"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.964708,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"534a842abf8455d9b02d463247fe5989","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"534a842abf8455d9b02d463247fe5989","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.163841,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"447efffdcba9daff8fcdf4db94c275f1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"447efffdcba9daff8fcdf4db94c275f1","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"534a842abf8455d9b02d463247fe5989"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"534a842abf8455d9b02d463247fe5989"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/websocket 200 20ms","method":"POST","requestID":"534a842abf8455d9b02d463247fe5989","responseTime":20,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"447efffdcba9daff8fcdf4db94c275f1"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.034","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"447efffdcba9daff8fcdf4db94c275f1"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/websocket 200 30ms","method":"POST","requestID":"447efffdcba9daff8fcdf4db94c275f1","responseTime":30,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"e8b835865b7f46fb43357c429a5e70d6"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e8b835865b7f46fb43357c429a5e70d6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e8b835865b7f46fb43357c429a5e70d6"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622857,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e8b835865b7f46fb43357c429a5e70d6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e8b835865b7f46fb43357c429a5e70d6","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.174196666Z"}]},"request_id":"6f293950-e3b9-4f89-a9ab-d04a822f8f6e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.616695} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e8b835865b7f46fb43357c429a5e70d6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e8b835865b7f46fb43357c429a5e70d6"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e8b835865b7f46fb43357c429a5e70d6"} device-1 | {"level":"info","message":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? 200 11ms","method":"GET","requestID":"e8b835865b7f46fb43357c429a5e70d6","responseTime":11,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"b3336beb010d95711a58e044cf67663f"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b3336beb010d95711a58e044cf67663f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b3336beb010d95711a58e044cf67663f"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6017,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b3336beb010d95711a58e044cf67663f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b3336beb010d95711a58e044cf67663f","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.264648970Z"}]},"request_id":"184edf9e-fa11-42bd-9894-25c6cd34c56a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.6295867} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b3336beb010d95711a58e044cf67663f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b3336beb010d95711a58e044cf67663f"} device-1 | {"level":"info","message":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? 200 9ms","method":"GET","requestID":"b3336beb010d95711a58e044cf67663f","responseTime":9,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b3336beb010d95711a58e044cf67663f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ff5a7bfcfab56189482ef572d2de7e38","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.072686,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff5a7bfcfab56189482ef572d2de7e38","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"ff5a7bfcfab56189482ef572d2de7e38","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to run experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to book experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully booked experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":21.091575,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","method":"POST","requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":23,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.043034,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.174196666Z"}]},"request_id":"32f13c5d-5b61-4ae9-b714-23a5f916d73a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.7035623} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.264648970Z"}]},"request_id":"71f213e7-29c0-42de-ab31-ad806c87b38f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.704179} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? 200 33ms","method":"GET","requestID":"2e8f31a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? 200 33ms","method":"GET","requestID":"2e8f58b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Setting up experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully locked booking for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to update booking for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully updated booking for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully set up experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ea1a830-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.920264,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully running experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.006208,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4c5743a-33f5-40f0-9a1b-e44cfae6c1b9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.800584} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.607789,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ea1a830-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2ea1a830-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.174196666Z"}]},"request_id":"804a31fd-74b9-4447-9ed6-71329772be98","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8026364} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.264648970Z"}]},"request_id":"c22611d8-a914-4f86-8615-96a5a1e10946","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.804583} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ea1a830-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling 200 10ms","method":"POST","requestID":"2ea1a830-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ea37cf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F466978d4-e3a3-4f14-b11d-2ff4099b4d63#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F466978d4-e3a3-4f14-b11d-2ff4099b4d63","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"fd82aa1d-f6d7-4336-ab34-247da91ed327","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8088915} device-1 | {"level":"info","message":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? 200 18ms","method":"GET","requestID":"2e9d8980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6b43bf93-8c86-495e-8c7b-d5db400dfd49","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8092334} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? 200 17ms","method":"GET","requestID":"2ea18120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"ff5a7bfcfab56189482ef572d2de7e38","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ca50e48-6573-40c2-bc2d-1e3b82ef6299","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8119187} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.602891,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ea37cf0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2ea37cf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ea46750-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ea37cf0-00f1-11f0-9a2b-c98a3cf1c544"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.210","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling 200 9ms","method":"POST","requestID":"2ea37cf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 207ms","method":"POST","requestID":"ff5a7bfcfab56189482ef572d2de7e38","responseTime":207,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"345ae177-421c-40e8-9f15-c9115d98ad0f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8457236} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":30.65667,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"67d072180bf54bc6ef65e98b1e9a143e"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"67d072180bf54bc6ef65e98b1e9a143e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ea46750-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 33ms","method":"POST","requestID":"2ea46750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"67d072180bf54bc6ef65e98b1e9a143e"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.682542,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ea46750-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling 200 37ms","method":"POST","requestID":"2ea46750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"67d072180bf54bc6ef65e98b1e9a143e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"67d072180bf54bc6ef65e98b1e9a143e","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2eaa5ac0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.174196666Z"}]},"request_id":"1761d8af-1caf-44c0-ae5b-976dbe7d8a86","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8538678} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"67d072180bf54bc6ef65e98b1e9a143e","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4af138f-c82c-4b0c-b06a-28cabd73051e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8559601} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.227103,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"67d072180bf54bc6ef65e98b1e9a143e"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2eaa5ac0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? 200 10ms","method":"GET","requestID":"67d072180bf54bc6ef65e98b1e9a143e","responseTime":10,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/052eef03-7b6f-4c53-bbd1-f95926073c89? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"67d072180bf54bc6ef65e98b1e9a143e"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2eaa5ac0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2eaa5ac0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling 200 7ms","method":"POST","requestID":"2eaa5ac0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Building connection plan","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} 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":"acee3ca3-78c6-4dad-8512-572c9c6e2e2e"},{"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":"efabcfaa-5403-4f12-92b0-c56fec782431"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8bf689bf-ab43-4ea6-93ba-5084284f261a"}]},"level":"info","message":"Built pairwise service configurations","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} 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/052eef03-7b6f-4c53-bbd1-f95926073c89"},{"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/a91554ab-d6c9-433b-aa12-1be0787060ac"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54","level":"info","message":"auth send jwt","requestID":"e33dfc5152496919346dba7b2dcbd00e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e33dfc5152496919346dba7b2dcbd00e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e33dfc5152496919346dba7b2dcbd00e"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":25.081895,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e33dfc5152496919346dba7b2dcbd00e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"e33dfc5152496919346dba7b2dcbd00e","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.473438,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969631,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMX0.X8IyyKzqo4TXTwP7fg8iSYHMYYotZRecF-1zUa9eZ54"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:09.264648970Z"}]},"request_id":"c72fdc3b-2df3-4abd-b148-7a00ebdfd141","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.892875} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e33dfc5152496919346dba7b2dcbd00e","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e33dfc5152496919346dba7b2dcbd00e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:11 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e33dfc5152496919346dba7b2dcbd00e"} device-1 | {"level":"info","message":"GET /devices/a91554ab-d6c9-433b-aa12-1be0787060ac? 200 35ms","method":"GET","requestID":"e33dfc5152496919346dba7b2dcbd00e","responseTime":35,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"36f9ecd9-d98b-417b-8d15-533cf5e59636","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8980854} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24e09c76-ed0f-4299-8aa5-999f85c065a6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.8982704} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23'","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23'","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"2eac0870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"ff5a7bfcfab56189482ef572d2de7e38"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ebea610-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"731c6904-2bcb-47f1-bff4-8e8ecc966ce0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.9890187} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.472574,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ebea610-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2ebea610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ebea610-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling 200 8ms","method":"POST","requestID":"2ebea610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ec02cb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:11Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"572f8995-5100-49c4-9de1-a0d948f7a3ca","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969631.9994826} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.799076,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ec02cb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2ec02cb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ec02cb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling 200 8ms","method":"POST","requestID":"2ec02cb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling"} device-1 | {"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 527730026859413603 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Q7X0\r\na=ice-pwd:jAzcKrBzE/gX0IySC8t6NHcr\r\na=ice-options:trickle\r\na=fingerprint:sha-256 31:32:67:AB:65:77:23:0C:C0:46:45:11:CF:1C:67:EE:AD:C2:3E:95:5B:BC:C8:5B:D0:76:80:25:E2:11:16:71\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 3661971161404005155 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:EiH9\r\na=ice-pwd:pVg67yhd707NUDU8jw5X8UUl\r\na=ice-options:trickle\r\na=fingerprint:sha-256 E7:F0:44:FC:B9:30:BE:36:39:BB:0B:51:02:73:D8:04:EB:20:58:DE:16:2F:D1:3D:9D:00:22:1D:86:0A:43:21\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:471175301 1 udp 2113937151 54eb06f2-e2d1-4582-9a2d-f7fe3408f722.local 43834 typ host generation 0 ufrag EiH9 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89'"} device-1 | {"content":{"candidate":"candidate:2253470829 1 udp 2113937151 71a3b51b-e318-42f6-8d91-2e8bc85bac00.local 36392 typ host generation 0 ufrag Q7X0 network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9a8701c27af72515d0dc29b19923b85c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9a8701c27af72515d0dc29b19923b85c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89"},{"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/a91554ab-d6c9-433b-aa12-1be0787060ac"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"}}},"level":"info","message":"received a callback","requestID":"9a8701c27af72515d0dc29b19923b85c"} device-1 | {"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"9a8701c27af72515d0dc29b19923b85c","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"9a8701c27af72515d0dc29b19923b85c"} device-1 | {"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"aac079d9cce343d0397d130af4eb063e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"aac079d9cce343d0397d130af4eb063e","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/052eef03-7b6f-4c53-bbd1-f95926073c89"},{"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/a91554ab-d6c9-433b-aa12-1be0787060ac"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"}}},"level":"info","message":"received a callback","requestID":"aac079d9cce343d0397d130af4eb063e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"2ed75e30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae916d44-863c-4320-badb-bba474b8af23","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de90d20d-0db6-4ae8-a40d-40a7507a1341","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.1521568} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":26.719646,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ed75e30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","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 29ms","method":"POST","requestID":"2ed75e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"2ed75e30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/ae916d44-863c-4320-badb-bba474b8af23 200 32ms","method":"GET","requestID":"2ed75e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"aac079d9cce343d0397d130af4eb063e","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"aac079d9cce343d0397d130af4eb063e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ede6310-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d81cdf6c-424d-45f1-8830-6d2c8eb177f5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.1974342} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.147426,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ede6310-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2ede6310-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ede6310-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling 200 32ms","method":"POST","requestID":"2ede6310-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ee39330-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk","level":"info","message":"auth send jwt","requestID":"264f0572cb5bf4748145b215c52d40ad"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"264f0572cb5bf4748145b215c52d40ad","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","requestID":"264f0572cb5bf4748145b215c52d40ad"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35bf6933-dea8-41a0-9da8-90ef4a6a2c7e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.2313757} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.70515,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.272976,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"264f0572cb5bf4748145b215c52d40ad","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969632,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"264f0572cb5bf4748145b215c52d40ad","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ee39330-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2ee39330-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ee39330-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling 200 8ms","method":"POST","requestID":"2ee39330-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","requestID":"264f0572cb5bf4748145b215c52d40ad"} experiment-1 | {"level":"info","message":"GET /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63 200 8ms","method":"GET","requestID":"264f0572cb5bf4748145b215c52d40ad","responseTime":8,"status":200,"url":"/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"264f0572cb5bf4748145b215c52d40ad"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk","level":"info","message":"auth send jwt","requestID":"04682affa030743f9d68492835555837"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"04682affa030743f9d68492835555837","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","requestID":"04682affa030743f9d68492835555837"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.728295,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"04682affa030743f9d68492835555837","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969632,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"04682affa030743f9d68492835555837","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Attempting to finish experiment","requestID":"04682affa030743f9d68492835555837"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.743219,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969632,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","device":"052eef03-7b6f-4c53-bbd1-f95926073c89","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23","device":"a91554ab-d6c9-433b-aa12-1be0787060ac","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae916d44-863c-4320-badb-bba474b8af23': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fae916d44-863c-4320-badb-bba474b8af23","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"563e0c6c-65fe-4e04-9097-42009c6f00a3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.2861612} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"13b79c0a3e63d53c6d9066b73981f9e7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"13b79c0a3e63d53c6d9066b73981f9e7","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bdd4d76a-0269-4e64-8fd5-74cf0f42a9db","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.2865195} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c53069fd0759818c88563b76af62b7ec","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c53069fd0759818c88563b76af62b7ec","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":"closed","url":"http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89"},{"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/a91554ab-d6c9-433b-aa12-1be0787060ac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"}}},"level":"info","message":"received a callback","requestID":"13b79c0a3e63d53c6d9066b73981f9e7"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89"},{"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/a91554ab-d6c9-433b-aa12-1be0787060ac"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"}}},"level":"info","message":"received a callback","requestID":"c53069fd0759818c88563b76af62b7ec"} device-1 | {"data":{"peerconnection":"ae916d44-863c-4320-badb-bba474b8af23","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/ae916d44-863c-4320-badb-bba474b8af23 204 77ms","method":"DELETE","requestID":"2ee6ee90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":77,"status":204,"url":"/peerconnections/ae916d44-863c-4320-badb-bba474b8af23"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"},"level":"info","message":"Successfully finished experiment","requestID":"04682affa030743f9d68492835555837"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2ef51f60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F052eef03-7b6f-4c53-bbd1-f95926073c89","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6a963287-5c06-4746-b543-81be8df4cf3a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.3462152} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.294411,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2ef51f60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"2ef51f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2ef51f60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling 200 32ms","method":"POST","requestID":"2ef51f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/052eef03-7b6f-4c53-bbd1-f95926073c89/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"2efa4f80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F466978d4-e3a3-4f14-b11d-2ff4099b4d63': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F466978d4-e3a3-4f14-b11d-2ff4099b4d63","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"381f6b3d-56cc-4405-a870-cd90e7665f0c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.3796988} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa91554ab-d6c9-433b-aa12-1be0787060ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34e85075-a30f-46ce-a4d8-1113ba2fc453","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.379882} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ca85d068-b568-49e3-9b96-1c513bd1d74f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.3800044} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"04682affa030743f9d68492835555837","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.48986,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2efa4f80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"2efa4f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"2efa4f80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling 200 9ms","method":"POST","requestID":"2efa4f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/a91554ab-d6c9-433b-aa12-1be0787060ac/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63","requestID":"04682affa030743f9d68492835555837"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.238","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"04682affa030743f9d68492835555837"} experiment-1 | {"level":"info","message":"DELETE /experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63 204 236ms","method":"DELETE","requestID":"04682affa030743f9d68492835555837","responseTime":236,"status":204,"url":"/experiments/466978d4-e3a3-4f14-b11d-2ff4099b4d63"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"13b79c0a3e63d53c6d9066b73981f9e7","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch","requestID":"13b79c0a3e63d53c6d9066b73981f9e7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 192ms","method":"POST","requestID":"c53069fd0759818c88563b76af62b7ec","responseTime":192,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.196","http_referrer":"","http_user_agent":"node-fetch","requestID":"c53069fd0759818c88563b76af62b7ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk","level":"info","message":"auth send jwt","requestID":"34c8d16186cec48a1a38c54fc1212991"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"34c8d16186cec48a1a38c54fc1212991"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2541","request_time":"0.898","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9f5521a7198cad3fbc35630ce531be42"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2539","request_time":"0.910","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"00998a5d93b158159e4c4d8a7b02638f"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.937856,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"34c8d16186cec48a1a38c54fc1212991","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969632,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a91554ab-d6c9-433b-aa12-1be0787060ac' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/052eef03-7b6f-4c53-bbd1-f95926073c89' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"97a5acc9-c811-4f81-a15f-6a7fd1b15c72","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5249028} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0bcb17a4-fece-4476-9683-e7293394457a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5285258} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"46a92ec4-78c2-44d1-97ca-9f80d643bea9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.537678} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ec3e2e9-334b-4258-b4f3-0591616c04aa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5378308} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.537654860Z"}]},"request_id":"c0e5a435-cfae-4b11-b163-76ae64445e05","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.541272} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"34c8d16186cec48a1a38c54fc1212991"} device-1 | {"level":"info","message":"POST /devices? 201 60ms","method":"POST","requestID":"34c8d16186cec48a1a38c54fc1212991","responseTime":60,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"34c8d16186cec48a1a38c54fc1212991"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk","level":"info","message":"auth send jwt","requestID":"e9786a24d71784d040daddd10a2aab29"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"e9786a24d71784d040daddd10a2aab29"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.995762,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e9786a24d71784d040daddd10a2aab29","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969632,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzMn0.14cxx1eg2yv2qnDijLzAlIeyV_V2yNRRoZoTEcf0Hjk"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8dca0211-69c9-4a92-a1c1-0298b3898f69","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5627139} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"175699cf-1760-45a4-a780-43694ec5a9b2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5664105} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c8e5bb15-e832-4d71-a4b8-dc931b366e41","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5763865} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7e0e206-da52-48a0-acde-dca19cc7c548","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.576564} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.576364908Z"}]},"request_id":"aead32ba-cc8f-4b29-847a-443bf3d4d684","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969632.5795095} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e9786a24d71784d040daddd10a2aab29"} gateway-1 | {"time_local":"14/Mar/2025:16:27:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9786a24d71784d040daddd10a2aab29"} device-1 | {"level":"info","message":"POST /devices? 201 34ms","method":"POST","requestID":"e9786a24d71784d040daddd10a2aab29","responseTime":34,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"5ee17fca488396193b6609ef6b7c6f14","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5ee17fca488396193b6609ef6b7c6f14","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/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":"5ee17fca488396193b6609ef6b7c6f14"} device-1 | {"level":"info","message":"OPTIONS /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/websocket 200 1ms","method":"OPTIONS","requestID":"5ee17fca488396193b6609ef6b7c6f14","responseTime":1,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs","level":"info","message":"auth send jwt","requestID":"6cc52d3107f31762df745923f9a1030a"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6cc52d3107f31762df745923f9a1030a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"6cc52d3107f31762df745923f9a1030a"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.472695,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6cc52d3107f31762df745923f9a1030a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"6cc52d3107f31762df745923f9a1030a","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"6cc52d3107f31762df745923f9a1030a"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/websocket 200 21ms","method":"POST","requestID":"6cc52d3107f31762df745923f9a1030a","responseTime":21,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6cc52d3107f31762df745923f9a1030a"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"e1434494855dc8a22f4bd52da9efbe28","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e1434494855dc8a22f4bd52da9efbe28","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.002","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e1434494855dc8a22f4bd52da9efbe28"} device-1 | {"level":"info","message":"OPTIONS /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket 200 0ms","method":"OPTIONS","requestID":"e1434494855dc8a22f4bd52da9efbe28","responseTime":0,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs","level":"info","message":"auth send jwt","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.113218,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bca947d1acaf858b53d5dfbbb5fec7fc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"device 'http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket 200 21ms","method":"POST","requestID":"bca947d1acaf858b53d5dfbbb5fec7fc","responseTime":21,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs","level":"info","message":"auth send jwt","requestID":"1eeb94f49aba90d79843e9dd1df474b0"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1eeb94f49aba90d79843e9dd1df474b0","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1eeb94f49aba90d79843e9dd1df474b0"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.046613,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1eeb94f49aba90d79843e9dd1df474b0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1eeb94f49aba90d79843e9dd1df474b0","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.537654860Z"}]},"request_id":"aee119ac-50f0-40b5-b948-ed993f54550e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969634.8349133} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1eeb94f49aba90d79843e9dd1df474b0","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1eeb94f49aba90d79843e9dd1df474b0"} device-1 | {"level":"info","message":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? 200 11ms","method":"GET","requestID":"1eeb94f49aba90d79843e9dd1df474b0","responseTime":11,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1eeb94f49aba90d79843e9dd1df474b0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs","level":"info","message":"auth send jwt","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d"} authentication-1 | {"level":"info","message":"GET /auth 200 23ms","method":"GET","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d","responseTime":23,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.781937,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"b2272f6fe9598f68bb7fb2146d9fce2d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.576364908Z"}]},"request_id":"41cb2051-688a-42c2-81aa-64977b3dbeb7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969634.8726814} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d"} device-1 | {"level":"info","message":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? 200 9ms","method":"GET","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d","responseTime":9,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b2272f6fe9598f68bb7fb2146d9fce2d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs","level":"info","message":"auth send jwt","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"34e19a1267518c6a86e41c5c0dccfed1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.692631,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"34e19a1267518c6a86e41c5c0dccfed1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"34e19a1267518c6a86e41c5c0dccfed1","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to run experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to book experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully booked experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.937285,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.870311,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:14Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.537654860Z"}]},"request_id":"bc5f78ae-a490-4684-ace6-062226e21266","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969634.938913} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.576364908Z"}]},"request_id":"1002fc9b-6198-4668-950e-3cd1efa2e0a7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969634.965613} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 28ms","method":"POST","requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? 200 38ms","method":"GET","requestID":"307fde10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? 200 39ms","method":"GET","requestID":"30800520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Setting up experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully locked booking for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to update booking for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully updated booking for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully set up experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully running experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30945070-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.684797,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.474022,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2df0a243-21a4-4f8f-ba8c-64a6aa110e45","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.06986} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.537654860Z"}]},"request_id":"a3488a47-3fc5-409a-a0a1-2e7c9b445b47","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.0714042} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.927721,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30945070-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"30945070-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.576364908Z"}]},"request_id":"a1d63b19-62ef-48cd-b589-f8de4a4ad6e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.0722516} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30945070-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling 200 14ms","method":"POST","requestID":"30945070-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0ee20487-4a5b-46f0-9c85-306c50835791#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0ee20487-4a5b-46f0-9c85-306c50835791","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"e66d3b19-a00e-44e6-8e02-49179642fa6c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.0780215} device-1 | {"level":"info","message":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? 200 17ms","method":"GET","requestID":"30940250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f29579b-79fc-4cac-a748-2dfff0f19650","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.0783596} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? 200 17ms","method":"GET","requestID":"30942960-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"34e19a1267518c6a86e41c5c0dccfed1","responseTime":16,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3096c170-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.209","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"level":"info","message":"POST /experiments? 201 205ms","method":"POST","requestID":"34e19a1267518c6a86e41c5c0dccfed1","responseTime":205,"status":201,"url":"/experiments?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"ff2d24260f183be099cdadea18d4a382"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ff2d24260f183be099cdadea18d4a382","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3098e450-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ff2d24260f183be099cdadea18d4a382"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.800022,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ff2d24260f183be099cdadea18d4a382","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","method":"POST","requestID":"ff2d24260f183be099cdadea18d4a382","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6097ce06-146d-4545-80ee-7fa3ef01d00c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1055086} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c1872798-16ab-47bb-b857-6ac65df75d25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1055434} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":12.055548,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":10.760782,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3096c170-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","method":"POST","requestID":"3096c170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3098e450-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","method":"POST","requestID":"3098e450-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.537654860Z"}]},"request_id":"16087bd8-748d-4177-a1e0-02eea7c4b1a9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.106877} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"ff2d24260f183be099cdadea18d4a382","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3096c170-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling 200 34ms","method":"POST","requestID":"3096c170-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3098e450-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling 200 20ms","method":"POST","requestID":"3098e450-00f1-11f0-9a2b-c98a3cf1c544","responseTime":20,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ff2d24260f183be099cdadea18d4a382"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ff2d24260f183be099cdadea18d4a382"} device-1 | {"level":"info","message":"GET /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00? 200 20ms","method":"GET","requestID":"ff2d24260f183be099cdadea18d4a382","responseTime":20,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"309c66c0-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"dd1bc091dad7390629ca3fad89e036ed"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dd1bc091dad7390629ca3fad89e036ed","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dd1bc091dad7390629ca3fad89e036ed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"51f44c5d-cdac-42db-ae0c-951610df5ebf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1207721} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.671256,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"309c66c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"309c66c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.662248,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dd1bc091dad7390629ca3fad89e036ed","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"dd1bc091dad7390629ca3fad89e036ed","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"309c66c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling 200 10ms","method":"POST","requestID":"309c66c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Building connection plan","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} 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":"761256bd-817e-4c8e-8490-5fe2af302adc"},{"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":"6e1400c3-1f11-4151-bcd4-6d4156a425bd"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"63bb7f8a-c281-456f-aad3-016694588a7b"}]},"level":"info","message":"Built pairwise service configurations","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} 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/13ae3a8b-b159-412e-aae1-7ecd0c5940d3"},{"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/119fab85-6fe1-4bfe-9885-4a4191d8be00"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:12.576364908Z"}]},"request_id":"1583a041-f9e0-4c66-a5cc-89fae216804a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1280863} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dd1bc091dad7390629ca3fad89e036ed","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dd1bc091dad7390629ca3fad89e036ed"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.846512,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd1bc091dad7390629ca3fad89e036ed"} device-1 | {"level":"info","message":"GET /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3? 200 13ms","method":"GET","requestID":"dd1bc091dad7390629ca3fad89e036ed","responseTime":13,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3?"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969634,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNH0.ijP-3jsPYAeFM3iM-KFc0fRXqlLHLLZo24_6XtCnTKs"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6fa5fc31-cf23-42d2-9d39-c8efd81189b5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1393912} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"096ec6a1-dc21-404e-99e4-e10877c6dccb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1395123} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce'","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce'","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 20ms","method":"POST","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544","responseTime":20,"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","requestID":"309e6290-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"34e19a1267518c6a86e41c5c0dccfed1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30a4f240-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e4c1382-5008-42a1-bde4-c00d7fd00410","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1760473} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.033326,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30a4f240-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"30a4f240-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30a4f240-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling 200 8ms","method":"POST","requestID":"30a4f240-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling"} device-1 | {"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30a6c700-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"857648d4-d099-4a20-ba9c-619115205b84","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.1882935} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.881192,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30a6c700-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"30a6c700-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30a6c700-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling 200 12ms","method":"POST","requestID":"30a6c700-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 2803496971084169361 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:zzQe\r\na=ice-pwd:u7h8huqUrvihfqqqtliiGt7q\r\na=ice-options:trickle\r\na=fingerprint:sha-256 89:1B:31:33:B4:D7:BD:A4:96:70:67:C0:A0:75:C5:A0:09:E4:66:F0:6B:61:0E:33:39:5F:E4:6B:A8:29:7D:88\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 6498525115625394739 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:leye\r\na=ice-pwd:KBMyZsU1YyaGtxvV1DfnpfSf\r\na=ice-options:trickle\r\na=fingerprint:sha-256 79:E8:74:AD:0E:44:B2:4A:33:84:76:CF:40:0F:02:0B:AC:94:CF:DA:CD:7E:A0:E3:57:96:0A:A5:47:BF:B1:E1\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1483417367 1 udp 2113937151 83ece7b7-83ba-4bc8-a513-20eca21af38a.local 58251 typ host generation 0 ufrag leye network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3'"} device-1 | {"content":{"candidate":"candidate:733446302 1 udp 2113937151 aa628e8d-ed6e-4a65-be7d-84a62291d6cd.local 44766 typ host generation 0 ufrag zzQe network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"248bc8b5-2ac1-461c-9b05-c444e008c3ce","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2be4fa9cce77266a904521c33208dc80","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2be4fa9cce77266a904521c33208dc80","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3"},{"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/119fab85-6fe1-4bfe-9885-4a4191d8be00"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"}}},"level":"info","message":"received a callback","requestID":"2be4fa9cce77266a904521c33208dc80"} device-1 | {"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"2be4fa9cce77266a904521c33208dc80","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"2be4fa9cce77266a904521c33208dc80"} device-1 | {"device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"248bc8b5-2ac1-461c-9b05-c444e008c3ce","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"248bc8b5-2ac1-461c-9b05-c444e008c3ce","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"248bc8b5-2ac1-461c-9b05-c444e008c3ce","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c10c30a066cd88fd76b7691b318e4090","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"c10c30a066cd88fd76b7691b318e4090","responseTime":25,"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/13ae3a8b-b159-412e-aae1-7ecd0c5940d3"},{"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/119fab85-6fe1-4bfe-9885-4a4191d8be00"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"}}},"level":"info","message":"received a callback","requestID":"c10c30a066cd88fd76b7691b318e4090"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"30b8c860-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F248bc8b5-2ac1-461c-9b05-c444e008c3ce","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ab72e9c-bbb4-4261-9dd8-83f5cb50d91d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.3063786} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.307629,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30b8c860-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","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","method":"POST","requestID":"30b8c860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"30b8c860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce 200 7ms","method":"GET","requestID":"30b8c860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"c10c30a066cd88fd76b7691b318e4090","responseTime":25,"status":200,"url":"/callbacks/experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30bc23c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.053","http_referrer":"","http_user_agent":"node-fetch","requestID":"c10c30a066cd88fd76b7691b318e4090"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d6235a8e-6bb7-412d-83c9-1693281b143c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.34949} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.47283,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30bc23c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"30bc23c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30bc23c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling 200 29ms","method":"POST","requestID":"30bc23c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30c0b7a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44f7c0c6-9f6d-46b1-a9d5-86a29599d452","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.3584323} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.214253,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30c0b7a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"30c0b7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30c0b7a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling 200 8ms","method":"POST","requestID":"30c0b7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"eafb853fdc0ff70fe43c40264ac442d0"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"eafb853fdc0ff70fe43c40264ac442d0","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0ee20487-4a5b-46f0-9c85-306c50835791","requestID":"eafb853fdc0ff70fe43c40264ac442d0"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.320152,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"eafb853fdc0ff70fe43c40264ac442d0","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eafb853fdc0ff70fe43c40264ac442d0","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0ee20487-4a5b-46f0-9c85-306c50835791","requestID":"eafb853fdc0ff70fe43c40264ac442d0"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0ee20487-4a5b-46f0-9c85-306c50835791 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eafb853fdc0ff70fe43c40264ac442d0"} experiment-1 | {"level":"info","message":"GET /experiments/0ee20487-4a5b-46f0-9c85-306c50835791 200 8ms","method":"GET","requestID":"eafb853fdc0ff70fe43c40264ac442d0","responseTime":8,"status":200,"url":"/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"1d1076d8e19afa6442e842191cf7576d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1d1076d8e19afa6442e842191cf7576d","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0ee20487-4a5b-46f0-9c85-306c50835791","requestID":"1d1076d8e19afa6442e842191cf7576d"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.659159,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1d1076d8e19afa6442e842191cf7576d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"1d1076d8e19afa6442e842191cf7576d","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Attempting to finish experiment","requestID":"1d1076d8e19afa6442e842191cf7576d"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.618169,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","device":"119fab85-6fe1-4bfe-9885-4a4191d8be00","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce","device":"13ae3a8b-b159-412e-aae1-7ecd0c5940d3","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"248bc8b5-2ac1-461c-9b05-c444e008c3ce","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F248bc8b5-2ac1-461c-9b05-c444e008c3ce': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F248bc8b5-2ac1-461c-9b05-c444e008c3ce","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"1335e61c-e7b0-4186-ab1c-777eb3d071b7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.4443555} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe534be4-672a-4d09-9c7d-1772bcbac7d9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.4445722} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"be98382a129e867c64dbdd0bb450ff93","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"be98382a129e867c64dbdd0bb450ff93","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7f932e1765531ddb1bb580f0eed89d76","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3"},{"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/119fab85-6fe1-4bfe-9885-4a4191d8be00"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"}}},"level":"info","message":"received a callback","requestID":"be98382a129e867c64dbdd0bb450ff93"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7f932e1765531ddb1bb580f0eed89d76","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3"},{"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/119fab85-6fe1-4bfe-9885-4a4191d8be00"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"}}},"level":"info","message":"received a callback","requestID":"7f932e1765531ddb1bb580f0eed89d76"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce 204 55ms","method":"DELETE","requestID":"30c8f500-00f1-11f0-9a2b-c98a3cf1c544","responseTime":55,"status":204,"url":"/peerconnections/248bc8b5-2ac1-461c-9b05-c444e008c3ce"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"},"level":"info","message":"Successfully finished experiment","requestID":"1d1076d8e19afa6442e842191cf7576d"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30d74ce0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F13ae3a8b-b159-412e-aae1-7ecd0c5940d3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0569affc-3898-46d1-8c48-3a46fd08dba5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.506683} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.583188,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30d74ce0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"30d74ce0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30d74ce0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling 200 8ms","method":"POST","requestID":"30d74ce0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"30d8d380-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0ee20487-4a5b-46f0-9c85-306c50835791': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0ee20487-4a5b-46f0-9c85-306c50835791","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"53e2cc38-34d6-450e-9381-7b2f16dd1bc1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.5370328} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"393fdc3e-9821-4e3e-a47f-cedfa2c3f582","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.5371766} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"1d1076d8e19afa6442e842191cf7576d","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F119fab85-6fe1-4bfe-9885-4a4191d8be00","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ca1ccdc-1773-4411-9fe1-0083ca8ecb47","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.541589} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.501106,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"30d8d380-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"30d8d380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"30d8d380-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling 200 9ms","method":"POST","requestID":"30d8d380-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0ee20487-4a5b-46f0-9c85-306c50835791","requestID":"1d1076d8e19afa6442e842191cf7576d"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0ee20487-4a5b-46f0-9c85-306c50835791 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d1076d8e19afa6442e842191cf7576d"} experiment-1 | {"level":"info","message":"DELETE /experiments/0ee20487-4a5b-46f0-9c85-306c50835791 204 215ms","method":"DELETE","requestID":"1d1076d8e19afa6442e842191cf7576d","responseTime":215,"status":204,"url":"/experiments/0ee20487-4a5b-46f0-9c85-306c50835791"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 171ms","method":"POST","requestID":"be98382a129e867c64dbdd0bb450ff93","responseTime":171,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"be98382a129e867c64dbdd0bb450ff93"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 170ms","method":"POST","requestID":"7f932e1765531ddb1bb580f0eed89d76","responseTime":170,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.174","http_referrer":"","http_user_agent":"node-fetch","requestID":"7f932e1765531ddb1bb580f0eed89d76"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"a5867ec4cb862dabecf9d3b256b553be"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"a5867ec4cb862dabecf9d3b256b553be"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.751118,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2542","request_time":"0.870","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ad209149a2337fc5e8728e83ccbe67c1"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a5867ec4cb862dabecf9d3b256b553be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2539","request_time":"0.840","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9705d06437fafb93e9d8d5837b8711b3"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/119fab85-6fe1-4bfe-9885-4a4191d8be00' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/13ae3a8b-b159-412e-aae1-7ecd0c5940d3' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a851454d-334f-4e43-9f84-2aac525d43a2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6418777} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"62036a73-1713-41dd-8620-7bad584b911a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6452327} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"61385b05-ac2f-4b1d-99ca-8e8754ef6733","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6554291} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d84163a8-36fb-4afd-a609-4e21fc41af09","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6556232} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.655407619Z"}]},"request_id":"5097f875-0afe-4f4d-a8f5-8ea772ee19e7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.66214} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a5867ec4cb862dabecf9d3b256b553be"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"a5867ec4cb862dabecf9d3b256b553be","responseTime":43,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a5867ec4cb862dabecf9d3b256b553be"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY","level":"info","message":"auth send jwt","requestID":"583cb1942271f0e9593f16c3c74c4d6d"} authentication-1 | {"level":"info","message":"GET /auth 200 17ms","method":"GET","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":17,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"583cb1942271f0e9593f16c3c74c4d6d"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.657591,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:15Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"583cb1942271f0e9593f16c3c74c4d6d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969635,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNX0.nNWKwdDY5Y69n9ZI7gfu08DzbmWoYqTTBixeckvLNLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"cd8d759e-40a9-4c17-bb33-c2d8fed3ebfc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6956716} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"447825f3-f5b1-43d8-bbf3-acc2240d2a6a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.6990783} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ee3e5b7e-989f-4454-8dd4-f0ab2bf96cdb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.7081056} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"53c7a218-b537-4da0-a1ca-f3c444575809","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.7083592} authorization-1 | {"level":"info","message":"POST /relations/update 200 31ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":31,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"2e7c5b08-66c8-41a8-98e2-4f2f2ee6b408","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969635.731752} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"583cb1942271f0e9593f16c3c74c4d6d"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"583cb1942271f0e9593f16c3c74c4d6d","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.069","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"583cb1942271f0e9593f16c3c74c4d6d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNn0.ZrKM_7GMbkA8c0NdE-Q-Y_eezoIw1o939eyWRua3Es8","level":"info","message":"auth send jwt","requestID":"4094efc2480bdcbe3ee573f08f8b74b5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"4094efc2480bdcbe3ee573f08f8b74b5"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:16Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676206,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4094efc2480bdcbe3ee573f08f8b74b5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969636,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNn0.ZrKM_7GMbkA8c0NdE-Q-Y_eezoIw1o939eyWRua3Es8"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"e4a1c354-2763-4024-9421-9a7c343989dc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969636.5999036} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92a19f4d-a99f-4d96-9635-3b6684781734","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969636.6036937} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"eb0bb03d-ebce-4042-8064-5997c4cdf193","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969636.6167197} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"4094efc2480bdcbe3ee573f08f8b74b5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.078","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4094efc2480bdcbe3ee573f08f8b74b5"} device-1 | {"level":"info","message":"PATCH /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc 200 74ms","method":"PATCH","requestID":"4094efc2480bdcbe3ee573f08f8b74b5","responseTime":74,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNn0.ZrKM_7GMbkA8c0NdE-Q-Y_eezoIw1o939eyWRua3Es8","level":"info","message":"auth send jwt","requestID":"cf7b40dcfbabfdd7aec578062dc55437"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"cf7b40dcfbabfdd7aec578062dc55437","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cf7b40dcfbabfdd7aec578062dc55437"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:16Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.688656,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:16Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cf7b40dcfbabfdd7aec578062dc55437","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969636,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzNn0.ZrKM_7GMbkA8c0NdE-Q-Y_eezoIw1o939eyWRua3Es8"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"cf7b40dcfbabfdd7aec578062dc55437","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cf7b40dcfbabfdd7aec578062dc55437"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/websocket 200 14ms","method":"POST","requestID":"cf7b40dcfbabfdd7aec578062dc55437","responseTime":14,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.017","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"cf7b40dcfbabfdd7aec578062dc55437"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eebf8a5f89c4154749d8a86f9f96a0b9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eebf8a5f89c4154749d8a86f9f96a0b9","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/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":"eebf8a5f89c4154749d8a86f9f96a0b9"} device-1 | {"level":"info","message":"OPTIONS /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/websocket 200 1ms","method":"OPTIONS","requestID":"eebf8a5f89c4154749d8a86f9f96a0b9","responseTime":1,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzN30.GnjDwa1oUt44aClZT51IYf_2PSH3FvYJMRrNK2oW5cw","level":"info","message":"auth send jwt","requestID":"5e5a881cb60d1874218c18940d61b9bf"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5e5a881cb60d1874218c18940d61b9bf","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"5e5a881cb60d1874218c18940d61b9bf"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:17Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.168612,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:17Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5e5a881cb60d1874218c18940d61b9bf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969637,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzN30.GnjDwa1oUt44aClZT51IYf_2PSH3FvYJMRrNK2oW5cw"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"5e5a881cb60d1874218c18940d61b9bf","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"5e5a881cb60d1874218c18940d61b9bf"} gateway-1 | {"time_local":"14/Mar/2025:16:27:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5e5a881cb60d1874218c18940d61b9bf"} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/websocket 200 20ms","method":"POST","requestID":"5e5a881cb60d1874218c18940d61b9bf","responseTime":20,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzN30.GnjDwa1oUt44aClZT51IYf_2PSH3FvYJMRrNK2oW5cw","level":"info","message":"auth send jwt","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:17Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.743237,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5e45ae2db459c219c010dc4b6aa9d9c3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969637,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzN30.GnjDwa1oUt44aClZT51IYf_2PSH3FvYJMRrNK2oW5cw"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.655407619Z"}]},"request_id":"7b2a1fa4-9651-4fd8-bd79-4b74147a2460","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969637.9964926} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3"} device-1 | {"level":"info","message":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? 200 11ms","method":"GET","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3","responseTime":11,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5e45ae2db459c219c010dc4b6aa9d9c3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU","level":"info","message":"auth send jwt","requestID":"e0b1b9a002c925dac62f7b4510221c45"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e0b1b9a002c925dac62f7b4510221c45","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e0b1b9a002c925dac62f7b4510221c45"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.03469,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e0b1b9a002c925dac62f7b4510221c45","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"e0b1b9a002c925dac62f7b4510221c45","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"37839d47-023f-4828-920d-f4f74403d73c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.013318} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e0b1b9a002c925dac62f7b4510221c45","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e0b1b9a002c925dac62f7b4510221c45"} gateway-1 | {"time_local":"14/Mar/2025:16:27:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0b1b9a002c925dac62f7b4510221c45"} device-1 | {"level":"info","message":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? 200 11ms","method":"GET","requestID":"e0b1b9a002c925dac62f7b4510221c45","responseTime":11,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU","level":"info","message":"auth send jwt","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.685646,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d4d74a8c82f0667f355a5cd1e362cbdf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to run experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to book experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully booked experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.47151,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.989923,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.655407619Z"}]},"request_id":"efa8c97a-38e8-40da-8e47-544ee146e4eb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.0556364} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"5a9e0c25-d963-4104-b85b-b13556a50727","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.0584857} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? 200 13ms","method":"GET","requestID":"325bca00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? 200 13ms","method":"GET","requestID":"325bf110-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Setting up experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully locked booking for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to update booking for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully updated booking for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully set up experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32682610-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully running experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:34404","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.661267,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:43104","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.549758,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.569828,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35685bae-f780-477c-b1b0-047ace217121","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1346958} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"32682610-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"32682610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"93e68540-1d4f-4a15-b107-76b1b061183b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1383388} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32682610-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.655407619Z"}]},"request_id":"3c51308d-eca4-4744-93f9-c8d82c42d624","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1389432} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling 200 10ms","method":"POST","requestID":"32682610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"326a48f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F99b1e626-abc7-478c-a51a-5921f74a2019#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F99b1e626-abc7-478c-a51a-5921f74a2019","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"bb8c9fc6-7436-44a9-98fe-31462df691e1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1447935} device-1 | {"level":"info","message":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? 200 41ms","method":"GET","requestID":"32645580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":41,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3884eafc-e4ec-4c38-986a-bc83526d4248","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.144995} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} device-1 | {"level":"info","message":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? 200 43ms","method":"GET","requestID":"32642e70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":43,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8eb4e905-e6e4-4b04-9365-756bb065b5a9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1478705} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.150285,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"326b0c40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"326a48f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"326a48f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"326a48f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"51560bad-9796-446f-a96b-9063bca39832","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1535392} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.249912,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"326b0c40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"326b0c40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /experiments? 201 135ms","method":"POST","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf","responseTime":135,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.139","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling 200 34ms","method":"POST","requestID":"326a48f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"326b0c40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling 200 31ms","method":"POST","requestID":"326b0c40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"326fee40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU","level":"info","message":"auth send jwt","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cb36a687-657d-4e4f-9d8f-db1a91157f22","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1859195} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.551142,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"326fee40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"326fee40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734866,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a111e6bde34bb4c224eabb3dfabdf8bb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"326fee40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling 200 14ms","method":"POST","requestID":"326fee40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Building connection plan","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} 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":"2535dc53-135f-4c30-84cf-88ca943cbf60"},{"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":"bd4d5e62-c634-4140-8c29-d32d3e40455e"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9048896d-f2d6-4481-8a52-093d14ad5daf"}]},"level":"info","message":"Built pairwise service configurations","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.655407619Z"}]},"request_id":"1cdeeb24-5353-426e-9f77-c7cf669cbf85","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.1953075} 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/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"},{"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/262b3648-16e5-4e2f-a9bd-114b8c0777b1"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb"} device-1 | {"level":"info","message":"GET /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1? 200 14ms","method":"GET","requestID":"a111e6bde34bb4c224eabb3dfabdf8bb","responseTime":14,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1?"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.738721,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU","level":"info","message":"auth send jwt","requestID":"bd911583d78381d87d8425870d79a162"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bd911583d78381d87d8425870d79a162","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bd911583d78381d87d8425870d79a162"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.790146,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bd911583d78381d87d8425870d79a162","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969638,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTYzOH0.K64tqjZUsVLf0aqAp8K4acRr60Ag1WP7rt53p_gcYiU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bd911583d78381d87d8425870d79a162","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:15.708075589Z"}]},"request_id":"67697e37-33f4-488d-8729-1080e6aaef4f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.2304418} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"bd911583d78381d87d8425870d79a162","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"04a537db-aca4-4d18-8578-358f7cd2ba4a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.23119} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f54dc09-8e93-444b-b193-5bedf8605f72","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.231572} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bd911583d78381d87d8425870d79a162"} gateway-1 | {"time_local":"14/Mar/2025:16:27:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.035","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bd911583d78381d87d8425870d79a162"} device-1 | {"level":"info","message":"GET /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc? 200 32ms","method":"GET","requestID":"bd911583d78381d87d8425870d79a162","responseTime":32,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545'","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545'","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"32728650-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"d4d74a8c82f0667f355a5cd1e362cbdf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3281efa0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c196d22-a60b-4ca1-94f8-3723749630f4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.3225436} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":22.683239,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3281efa0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"3281efa0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3281efa0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling 200 28ms","method":"POST","requestID":"3281efa0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"32865c70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c366bd91-610c-4572-80c0-6460dd982bf3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969638.331708} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.633982,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"32865c70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"32865c70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"32865c70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling 200 9ms","method":"POST","requestID":"32865c70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling"} device-1 | {"content":{"sdp":"v=0\r\no=- 2857553857382518155 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:YDBO\r\na=ice-pwd:nRlkJR3ldb6w5I9wMBK8Qu85\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EF:17:44:A1:40:94:A6:C8:2B:73:7B:CB:5C:F8:5F:70:33:19:E0:76:4F:3D:B7:2D:C3:8C:8A:A0:85:24:BA:D5\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"124847eb437fd5ac00feb49e3dc1633c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"124847eb437fd5ac00feb49e3dc1633c","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"},{"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/262b3648-16e5-4e2f-a9bd-114b8c0777b1"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"}}},"level":"info","message":"received a callback","requestID":"124847eb437fd5ac00feb49e3dc1633c"} device-1 | {"content":{"candidate":"candidate:509423316 1 udp 2113937151 2bd13989-dc02-4129-a9ec-c7bed1655488.local 60844 typ host generation 0 ufrag YDBO network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 17ms","method":"POST","requestID":"124847eb437fd5ac00feb49e3dc1633c","responseTime":17,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch","requestID":"124847eb437fd5ac00feb49e3dc1633c"} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"937bd7d8890930b63a63e001357cbf3e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"937bd7d8890930b63a63e001357cbf3e","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/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"},{"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/262b3648-16e5-4e2f-a9bd-114b8c0777b1"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"}}},"level":"info","message":"received a callback","requestID":"937bd7d8890930b63a63e001357cbf3e"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"33b9fa70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F272a7ff1-781c-4c9e-8dcc-cae16ee05545","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7056c078-5960-40d6-887c-64ef0c3fef03","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.347607} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.19338,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33b9fa70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"33b9fa70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"33b9fa70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545 200 7ms","method":"GET","requestID":"33b9fa70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 43ms","method":"POST","requestID":"937bd7d8890930b63a63e001357cbf3e","responseTime":43,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch","requestID":"937bd7d8890930b63a63e001357cbf3e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33bfc6d0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86fe76b8-a7d4-4afb-9a69-5ac81765383a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.3848784} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.163877,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33bfc6d0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"33bfc6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33bfc6d0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling 200 8ms","method":"POST","requestID":"33bfc6d0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33c19b90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"62aa13b2-f9b8-4933-af16-1cd1847d0dc9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.3996124} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.153024,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33c19b90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"33c19b90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33c19b90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling 200 11ms","method":"POST","requestID":"33c19b90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU","level":"info","message":"auth send jwt","requestID":"300257a7e1017a31bee3744764b44be7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"300257a7e1017a31bee3744764b44be7","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/99b1e626-abc7-478c-a51a-5921f74a2019","requestID":"300257a7e1017a31bee3744764b44be7"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.7832,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"300257a7e1017a31bee3744764b44be7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969640,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"300257a7e1017a31bee3744764b44be7","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/99b1e626-abc7-478c-a51a-5921f74a2019","requestID":"300257a7e1017a31bee3744764b44be7"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/99b1e626-abc7-478c-a51a-5921f74a2019 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"300257a7e1017a31bee3744764b44be7"} experiment-1 | {"level":"info","message":"GET /experiments/99b1e626-abc7-478c-a51a-5921f74a2019 200 11ms","method":"GET","requestID":"300257a7e1017a31bee3744764b44be7","responseTime":11,"status":200,"url":"/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU","level":"info","message":"auth send jwt","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c6f609f12193a86a019ac24ffdd20a9e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/99b1e626-abc7-478c-a51a-5921f74a2019","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.619063,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c6f609f12193a86a019ac24ffdd20a9e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969640,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c6f609f12193a86a019ac24ffdd20a9e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Attempting to finish experiment","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.774302,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969640,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545","device":"262b3648-16e5-4e2f-a9bd-114b8c0777b1","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"5a82de4f-32fa-41d9-8aa4-f23cebf829bc","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F272a7ff1-781c-4c9e-8dcc-cae16ee05545': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F272a7ff1-781c-4c9e-8dcc-cae16ee05545","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"81a9469c-b11b-4a6c-a0f5-4203eb24d1cc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.5018945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1918737b-8b0c-42bd-9b32-ff68607f06b8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.5021915} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d115f77135cce537c05555c5c689389d","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d115f77135cce537c05555c5c689389d","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"098dd3551d974243204dcf2cbe1df7e7","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"},{"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/262b3648-16e5-4e2f-a9bd-114b8c0777b1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"}}},"level":"info","message":"received a callback","requestID":"d115f77135cce537c05555c5c689389d"} authentication-1 | {"level":"info","message":"GET /auth 200 25ms","method":"GET","requestID":"098dd3551d974243204dcf2cbe1df7e7","responseTime":25,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc"},{"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/262b3648-16e5-4e2f-a9bd-114b8c0777b1"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"}}},"level":"info","message":"received a callback","requestID":"098dd3551d974243204dcf2cbe1df7e7"} device-1 | {"data":{"peerconnection":"272a7ff1-781c-4c9e-8dcc-cae16ee05545","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545 204 52ms","method":"DELETE","requestID":"33d04190-00f1-11f0-9a2b-c98a3cf1c544","responseTime":52,"status":204,"url":"/peerconnections/272a7ff1-781c-4c9e-8dcc-cae16ee05545"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"},"level":"info","message":"Successfully finished experiment","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33ddfd30-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5a82de4f-32fa-41d9-8aa4-f23cebf829bc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8726f1e8-cb73-4c63-885d-f3bac2eefded","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.5833101} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.510443,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33ddfd30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"33ddfd30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33ddfd30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling 200 8ms","method":"POST","requestID":"33ddfd30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"33df5cc0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F99b1e626-abc7-478c-a51a-5921f74a2019': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F99b1e626-abc7-478c-a51a-5921f74a2019","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"8ce818d4-c55b-4696-926e-d61d818654f8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.592555} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F262b3648-16e5-4e2f-a9bd-114b8c0777b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d8f4884-5b83-4b53-964e-d78cae98fa86","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.592744} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"28b0197e-57b8-4fd6-98ab-1f5950912e1c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.5928931} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"c6f609f12193a86a019ac24ffdd20a9e","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.469457,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"33df5cc0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"33df5cc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"33df5cc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling 200 9ms","method":"POST","requestID":"33df5cc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/99b1e626-abc7-478c-a51a-5921f74a2019","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/99b1e626-abc7-478c-a51a-5921f74a2019 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.241","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c6f609f12193a86a019ac24ffdd20a9e"} experiment-1 | {"level":"info","message":"DELETE /experiments/99b1e626-abc7-478c-a51a-5921f74a2019 204 239ms","method":"DELETE","requestID":"c6f609f12193a86a019ac24ffdd20a9e","responseTime":239,"status":204,"url":"/experiments/99b1e626-abc7-478c-a51a-5921f74a2019"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2539","request_time":"4.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"d56dbd8706a55a3ceff8372d0d88979c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 190ms","method":"POST","requestID":"d115f77135cce537c05555c5c689389d","responseTime":190,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"d115f77135cce537c05555c5c689389d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 166ms","method":"POST","requestID":"098dd3551d974243204dcf2cbe1df7e7","responseTime":166,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"098dd3551d974243204dcf2cbe1df7e7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU","level":"info","message":"auth send jwt","requestID":"ddb03c616845ffac7592d75a24f90fc9"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":29,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ddb03c616845ffac7592d75a24f90fc9"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2360","request_time":"2.754","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"87b7970b4626b9b85fb5d0d761b411f1"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.966419,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5a82de4f-32fa-41d9-8aa4-f23cebf829bc' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ddb03c616845ffac7592d75a24f90fc9","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969640,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/262b3648-16e5-4e2f-a9bd-114b8c0777b1' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"82844dd8-96db-49ca-8773-e11ed0734b79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.741211} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b8ee6d65-6fe4-483e-930b-00cb98aa9d5a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.7696037} authorization-1 | {"level":"info","message":"POST /relations/update 200 28ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":28,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"67a6cd3b-f0a5-41a1-a287-b213fc2ac928","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.7823212} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8bc7dad4-17c2-489a-b579-4057445bc384","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.7825308} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":15,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.782296982Z"}]},"request_id":"0bac9c8b-f879-4c34-b776-2c202bb5fa18","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.7866328} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ddb03c616845ffac7592d75a24f90fc9"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ddb03c616845ffac7592d75a24f90fc9"} device-1 | {"level":"info","message":"POST /devices? 201 65ms","method":"POST","requestID":"ddb03c616845ffac7592d75a24f90fc9","responseTime":65,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU","level":"info","message":"auth send jwt","requestID":"342e70c10a4dba9a50faf5f0bcf69867"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"342e70c10a4dba9a50faf5f0bcf69867"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.670336,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"342e70c10a4dba9a50faf5f0bcf69867","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969640,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MH0.VPX7C2bVPVZlnMlLBtMTHCJNVAlgMVCItX5Zxzm6bAU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0c667053-39bc-405c-923d-2739c847523c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.8330703} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"36695f43-2825-4485-9948-ac96a3b21b17","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.8376272} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"63310cfa-38c7-4d44-8b9f-316f685e1647","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.869223} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe6a3fdc-2ac9-4931-9e83-8692f0f81dfc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.8694553} authorization-1 | {"level":"info","message":"POST /relations/update 200 33ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":33,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"f7ed4ffb-ccff-4b61-92a5-91aba65d88af","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969640.8732328} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"342e70c10a4dba9a50faf5f0bcf69867"} gateway-1 | {"time_local":"14/Mar/2025:16:27:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"342e70c10a4dba9a50faf5f0bcf69867"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"342e70c10a4dba9a50faf5f0bcf69867","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MX0.My60omMstwN3zpDRpu-IfuVUf50cfrwhfb9An4-YUXI","level":"info","message":"auth send jwt","requestID":"ed64f4133322adad685f7aa4485bd3cf"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"ed64f4133322adad685f7aa4485bd3cf"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.756043,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ed64f4133322adad685f7aa4485bd3cf","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969641,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MX0.My60omMstwN3zpDRpu-IfuVUf50cfrwhfb9An4-YUXI"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"be35d96f-e311-44fd-804d-9dfbf3b40ecb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969641.749987} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2808c682-4255-4360-9892-15df7a37d2d6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969641.7543771} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"f76d584b-1af0-41ca-8856-931b33e12ac9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969641.7884285} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"ed64f4133322adad685f7aa4485bd3cf"} gateway-1 | {"time_local":"14/Mar/2025:16:27:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.052","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"ed64f4133322adad685f7aa4485bd3cf"} device-1 | {"level":"info","message":"PATCH /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0 200 49ms","method":"PATCH","requestID":"ed64f4133322adad685f7aa4485bd3cf","responseTime":49,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MX0.My60omMstwN3zpDRpu-IfuVUf50cfrwhfb9An4-YUXI","level":"info","message":"auth send jwt","requestID":"50be79cedbb116877ff1a3ac57f74f98"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"50be79cedbb116877ff1a3ac57f74f98","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"50be79cedbb116877ff1a3ac57f74f98"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:21Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676242,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"50be79cedbb116877ff1a3ac57f74f98","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969641,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0MX0.My60omMstwN3zpDRpu-IfuVUf50cfrwhfb9An4-YUXI"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"50be79cedbb116877ff1a3ac57f74f98","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"50be79cedbb116877ff1a3ac57f74f98"} gateway-1 | {"time_local":"14/Mar/2025:16:27:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.039","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"50be79cedbb116877ff1a3ac57f74f98"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/websocket 200 36ms","method":"POST","requestID":"50be79cedbb116877ff1a3ac57f74f98","responseTime":36,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ab34f8ba9995ff866bd3cfd3bef63c5a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ab34f8ba9995ff866bd3cfd3bef63c5a","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/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":"ab34f8ba9995ff866bd3cfd3bef63c5a"} device-1 | {"level":"info","message":"OPTIONS /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/websocket 200 1ms","method":"OPTIONS","requestID":"ab34f8ba9995ff866bd3cfd3bef63c5a","responseTime":1,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"341c8118a17b4e5621458668c6e9b5a1"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"341c8118a17b4e5621458668c6e9b5a1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"341c8118a17b4e5621458668c6e9b5a1"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.228222,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"341c8118a17b4e5621458668c6e9b5a1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"341c8118a17b4e5621458668c6e9b5a1","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"341c8118a17b4e5621458668c6e9b5a1"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/websocket 200 20ms","method":"POST","requestID":"341c8118a17b4e5621458668c6e9b5a1","responseTime":20,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"341c8118a17b4e5621458668c6e9b5a1"} device-1 | {"level":"info","message":"device 'http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"39489744e67e697d702c70ee212e9a79"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"39489744e67e697d702c70ee212e9a79","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"39489744e67e697d702c70ee212e9a79"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.015862,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"39489744e67e697d702c70ee212e9a79","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"39489744e67e697d702c70ee212e9a79","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.782296982Z"}]},"request_id":"6c467002-a8f9-4e0c-bd00-c73c98c4f7bd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.2265942} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"39489744e67e697d702c70ee212e9a79","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"39489744e67e697d702c70ee212e9a79"} device-1 | {"level":"info","message":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? 200 9ms","method":"GET","requestID":"39489744e67e697d702c70ee212e9a79","responseTime":9,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"39489744e67e697d702c70ee212e9a79"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.135333,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"59f4981c-cc29-41fe-b850-9f3fa769e217","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.2399542} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7"} device-1 | {"level":"info","message":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? 200 11ms","method":"GET","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7","responseTime":11,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eb1c08f6ed31a1cfade2d0c8a2b85ae7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2e1ed92457a6460bc5fbf25418a1d989","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.63399,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2e1ed92457a6460bc5fbf25418a1d989","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2e1ed92457a6460bc5fbf25418a1d989","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to run experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to book experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully booked experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.586797,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34764","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:34764","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.966145,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.782296982Z"}]},"request_id":"c5c2f202-4e51-49e3-a774-a05d9cb5571c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.317556} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"1170ac5e-d25f-49d0-baaa-f5c62140d885","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.320633} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? 200 32ms","method":"GET","requestID":"357b8090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? 200 32ms","method":"GET","requestID":"357bceb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Setting up experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully locked booking for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to update booking for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully updated booking for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully set up experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"358e1e30-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully running experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} authorization-1 | {"client_addr":"127.0.0.1:34764","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:34764","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.369202,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.761874,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"bb05926c-3238-46e0-8729-4ccd40ba7e3d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4213064} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cd5cfe1f-5897-47ad-abe9-0e2f3f8347fb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4217117} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.782296982Z"}]},"request_id":"aa03df3d-f2e9-4d61-a340-04f234864cf3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4222877} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.989713,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"358e1e30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"358e1e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8640f8d6-c37a-4c6b-a4fb-5e51608b04dd#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"da27042f-05fb-4164-90f5-4fa6d1249783","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.428001} device-1 | {"level":"info","message":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? 200 18ms","method":"GET","requestID":"358df720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"30ee214c-32c7-4e3f-9013-72eac64b5d96","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.428361} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"358e1e30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling 200 18ms","method":"POST","requestID":"358e1e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"2e1ed92457a6460bc5fbf25418a1d989","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? 200 42ms","method":"GET","requestID":"358a9bc0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":42,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35912b70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35959840-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ae1bdca-c6da-4910-aaa5-cf8e547e4186","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4597235} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.70251,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"35912b70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"35912b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"level":"info","message":"POST /experiments? 201 214ms","method":"POST","requestID":"2e1ed92457a6460bc5fbf25418a1d989","responseTime":214,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35912b70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling 200 34ms","method":"POST","requestID":"35912b70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6a4a6716-22bd-45cb-8bed-424ce05074ac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4649985} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.028307,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"35959840-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"35959840-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"34623e17a3347f57e3db36343efb22d6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"34623e17a3347f57e3db36343efb22d6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"34623e17a3347f57e3db36343efb22d6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35959840-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling 200 10ms","method":"POST","requestID":"35959840-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.737139,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"34623e17a3347f57e3db36343efb22d6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35976d00-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"34623e17a3347f57e3db36343efb22d6","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.782296982Z"}]},"request_id":"3e9e41d2-6b3d-4d36-8174-4b638b318553","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4753356} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"34623e17a3347f57e3db36343efb22d6","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65ce661f-7a37-49b1-913a-36c7e27b8007","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.4755125} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.130801,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"35976d00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"35976d00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"34623e17a3347f57e3db36343efb22d6"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"34623e17a3347f57e3db36343efb22d6"} device-1 | {"level":"info","message":"GET /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4? 200 11ms","method":"GET","requestID":"34623e17a3347f57e3db36343efb22d6","responseTime":11,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35976d00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling 200 8ms","method":"POST","requestID":"35976d00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Building connection plan","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} 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":"19d553cd-7130-4656-8192-0fbed0260be6"},{"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":"5b4a0dc5-45c5-4935-8221-af8dae8467d8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7957a700-049d-471f-9568-3bb4fa58bd82"}]},"level":"info","message":"Built pairwise service configurations","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} 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/5d732cae-95ad-4465-b1d3-f7155f5a0df4"},{"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/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ","level":"info","message":"auth send jwt","requestID":"e7ec2ecc97e51837a2340546549a0613"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e7ec2ecc97e51837a2340546549a0613","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e7ec2ecc97e51837a2340546549a0613"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.695898,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.532014,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e7ec2ecc97e51837a2340546549a0613","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969643,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0M30.wXWEr7UyCQWzrKnKEYu0f98QjkE5u57ULiyb7eIbYWQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e7ec2ecc97e51837a2340546549a0613","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:20.869188994Z"}]},"request_id":"1fb457d0-fee8-452b-8d14-a67099745267","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.5149877} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e7ec2ecc97e51837a2340546549a0613","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e7ec2ecc97e51837a2340546549a0613"} gateway-1 | {"time_local":"14/Mar/2025:16:27:23 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e7ec2ecc97e51837a2340546549a0613"} device-1 | {"level":"info","message":"GET /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0? 200 12ms","method":"GET","requestID":"e7ec2ecc97e51837a2340546549a0613","responseTime":12,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e2f5b44-cd75-4b01-9a00-8b78576dc5df","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.5235257} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"002307c4-8353-4cbb-90a5-e22e9dd98787","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.523882} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55'","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55'","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 58ms","method":"POST","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":58,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"359cc430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"2e1ed92457a6460bc5fbf25418a1d989"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35adb420-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c20b75b-7264-40dd-a950-b5616043a8b0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.6227665} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.865801,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"35adb420-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"35adb420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35adb420-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling 200 9ms","method":"POST","requestID":"35adb420-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"35affe10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"35affe10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling 200 6ms","method":"POST","requestID":"35affe10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3ec5fda6-eb65-4056-9fe5-0df5eed1f4a9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969643.6365912} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.972759,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:23Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"35affe10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"35affe10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 3993873817693190975 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:c19J\r\na=ice-pwd:4ZZMHdaZHUFtqK3RielVdo23\r\na=ice-options:trickle\r\na=fingerprint:sha-256 14:90:2A:C7:8D:EF:0B:3D:79:A4:84:B1:B8:DB:64:8E:BC:EB:10:01:ED:D7:28:43:33:B7:3C:53:AF:80:01:73\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"content":{"candidate":"candidate:1279169816 1 udp 2113937151 4a8ee4a0-575e-4845-a90b-c47347dbbd02.local 44765 typ host generation 0 ufrag c19J network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f997fee8d54ee53de1d23162b9c4c3c5","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f997fee8d54ee53de1d23162b9c4c3c5","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4"},{"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/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"}}},"level":"info","message":"received a callback","requestID":"f997fee8d54ee53de1d23162b9c4c3c5"} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"f997fee8d54ee53de1d23162b9c4c3c5","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"f997fee8d54ee53de1d23162b9c4c3c5"} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d8e95386f28488b793591bea1ff9a7dd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d8e95386f28488b793591bea1ff9a7dd","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/5d732cae-95ad-4465-b1d3-f7155f5a0df4"},{"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/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"}}},"level":"info","message":"received a callback","requestID":"d8e95386f28488b793591bea1ff9a7dd"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"36e98f80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6e3e787-1f94-4f91-8a88-64c3709e7c55","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"13d89dbb-d0c2-4852-a45b-fb035161d9b2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.7138383} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":23.694003,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"36e98f80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","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 26ms","method":"POST","requestID":"36e98f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"36e98f80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55 200 30ms","method":"GET","requestID":"36e98f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 51ms","method":"POST","requestID":"d8e95386f28488b793591bea1ff9a7dd","responseTime":51,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch","requestID":"d8e95386f28488b793591bea1ff9a7dd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36f09460-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8ea4b76f-7df7-4991-9a22-b41efcda32ce","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.7631383} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.423131,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"36f09460-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"36f09460-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36f09460-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling 200 33ms","method":"POST","requestID":"36f09460-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0NX0.uidsYLun5QOhSOWvPSeKJMsRtpJGUZ6Ps8tKJdPFWXY","level":"info","message":"auth send jwt","requestID":"90fa8c38512c6c99da2d62d4e7e40895"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"90fa8c38512c6c99da2d62d4e7e40895","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"36f5eb90-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","requestID":"90fa8c38512c6c99da2d62d4e7e40895"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c8589d6b-9200-4131-a838-96851f4f7e56","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.7734818} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.743555,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"90fa8c38512c6c99da2d62d4e7e40895","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969645,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0NX0.uidsYLun5QOhSOWvPSeKJMsRtpJGUZ6Ps8tKJdPFWXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"90fa8c38512c6c99da2d62d4e7e40895","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.435206,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"36f5eb90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"36f5eb90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"36f5eb90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling 200 9ms","method":"POST","requestID":"36f5eb90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","requestID":"90fa8c38512c6c99da2d62d4e7e40895"} experiment-1 | {"level":"info","message":"GET /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd 200 12ms","method":"GET","requestID":"90fa8c38512c6c99da2d62d4e7e40895","responseTime":12,"status":200,"url":"/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"} gateway-1 | {"time_local":"14/Mar/2025:16:27:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"90fa8c38512c6c99da2d62d4e7e40895"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0NX0.uidsYLun5QOhSOWvPSeKJMsRtpJGUZ6Ps8tKJdPFWXY","level":"info","message":"auth send jwt","requestID":"f51ec390df6106515fc45cce0c5e29d8"} authentication-1 | {"level":"info","message":"GET /auth 200 26ms","method":"GET","requestID":"f51ec390df6106515fc45cce0c5e29d8","responseTime":26,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","requestID":"f51ec390df6106515fc45cce0c5e29d8"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.960035,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f51ec390df6106515fc45cce0c5e29d8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969645,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0NX0.uidsYLun5QOhSOWvPSeKJMsRtpJGUZ6Ps8tKJdPFWXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f51ec390df6106515fc45cce0c5e29d8","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Attempting to finish experiment","requestID":"f51ec390df6106515fc45cce0c5e29d8"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.660786,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969645,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0NX0.uidsYLun5QOhSOWvPSeKJMsRtpJGUZ6Ps8tKJdPFWXY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55","device":"5d732cae-95ad-4465-b1d3-f7155f5a0df4","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"cca46900-0c64-4ebf-9da1-64d2c52f6ee0","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55' to 'http://localhost/callbacks/experiment'"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6e3e787-1f94-4f91-8a88-64c3709e7c55': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fc6e3e787-1f94-4f91-8a88-64c3709e7c55","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"e8826c24-9427-46d9-88cc-6f093c865208","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.8310676} device-1 | {"data":{"peerconnection":"c6e3e787-1f94-4f91-8a88-64c3709e7c55","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"209aa778-50de-4b01-a449-fa8b3dc8ad16","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.8312964} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55 204 42ms","method":"DELETE","requestID":"36fd65a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":42,"status":204,"url":"/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"44d80ca1ff0cc5ccf5916c14a179cafd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 29ms","method":"GET","requestID":"44d80ca1ff0cc5ccf5916c14a179cafd","responseTime":29,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"533b3dd76fc343e70b985c89b280fbf1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"533b3dd76fc343e70b985c89b280fbf1","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"}}},"level":"info","message":"received a callback","requestID":"44d80ca1ff0cc5ccf5916c14a179cafd"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/c6e3e787-1f94-4f91-8a88-64c3709e7c55"}}},"level":"info","message":"received a callback","requestID":"533b3dd76fc343e70b985c89b280fbf1"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"},"level":"info","message":"Successfully finished experiment","requestID":"f51ec390df6106515fc45cce0c5e29d8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3706b470-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5d732cae-95ad-4465-b1d3-f7155f5a0df4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a1ae81a-cba6-495e-b27b-efe973c047a4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.9078622} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.453449,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3706b470-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3706b470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3706b470-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling 200 32ms","method":"POST","requestID":"3706b470-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"370be490-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8640f8d6-c37a-4c6b-a4fb-5e51608b04dd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"06fd3bd1-5004-4f6a-8ddc-3ded9cc5d614","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.9170916} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcca46900-0c64-4ebf-9da1-64d2c52f6ee0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a26e79b3-59dc-4933-8c9e-b3bcc1de23fd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.9172206} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"36e4e03c-3fdd-4687-b018-99c0a08f682a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969645.9173918} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.470465,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"370be490-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"370be490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/update 200 41ms","method":"POST","requestID":"f51ec390df6106515fc45cce0c5e29d8","responseTime":41,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"370be490-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling 200 8ms","method":"POST","requestID":"370be490-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd","requestID":"f51ec390df6106515fc45cce0c5e29d8"} gateway-1 | {"time_local":"14/Mar/2025:16:27:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f51ec390df6106515fc45cce0c5e29d8"} experiment-1 | {"level":"info","message":"DELETE /experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd 204 205ms","method":"DELETE","requestID":"f51ec390df6106515fc45cce0c5e29d8","responseTime":205,"status":204,"url":"/experiments/8640f8d6-c37a-4c6b-a4fb-5e51608b04dd"} gateway-1 | {"time_local":"14/Mar/2025:16:27:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2491","request_time":"4.183","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"dd3090e3568ed648a63ce63664675876"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"44d80ca1ff0cc5ccf5916c14a179cafd","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.186","http_referrer":"","http_user_agent":"node-fetch","requestID":"44d80ca1ff0cc5ccf5916c14a179cafd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"533b3dd76fc343e70b985c89b280fbf1","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.160","http_referrer":"","http_user_agent":"node-fetch","requestID":"533b3dd76fc343e70b985c89b280fbf1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0Nn0.VLdm2b-WqwlnNMpEDav9zk_bj35NUuYyUeFZk-1AeLY","level":"info","message":"auth send jwt","requestID":"2532116210c9061a34f564396b93f228"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2532116210c9061a34f564396b93f228","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"2532116210c9061a34f564396b93f228"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:26Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2365","request_time":"2.819","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"70f0ca5a50256a0856e496ede3685834"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.878621,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:26Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/cca46900-0c64-4ebf-9da1-64d2c52f6ee0' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2532116210c9061a34f564396b93f228","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969646,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0Nn0.VLdm2b-WqwlnNMpEDav9zk_bj35NUuYyUeFZk-1AeLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/5d732cae-95ad-4465-b1d3-f7155f5a0df4' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a82197c8-ae43-4f43-9325-10fc3931294b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.0620708} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7316e42b-924c-4ed2-a736-29488ffba6f1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.0666096} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"6dc6d784-7c03-4456-9ce7-34f9acc35de4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1030803} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b5d9ffd3-dd2a-4e9e-a4db-4605fd64499c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1033144} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"78b89b04-d695-4230-a91b-467fa358c065","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1071155} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"2532116210c9061a34f564396b93f228"} gateway-1 | {"time_local":"14/Mar/2025:16:27:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2532116210c9061a34f564396b93f228"} device-1 | {"level":"info","message":"POST /devices? 201 87ms","method":"POST","requestID":"2532116210c9061a34f564396b93f228","responseTime":87,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0Nn0.VLdm2b-WqwlnNMpEDav9zk_bj35NUuYyUeFZk-1AeLY","level":"info","message":"auth send jwt","requestID":"6fd5b2e3fafae71cc8187773de1de0ac"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"6fd5b2e3fafae71cc8187773de1de0ac"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:26Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.498049,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:26Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6fd5b2e3fafae71cc8187773de1de0ac","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969646,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0Nn0.VLdm2b-WqwlnNMpEDav9zk_bj35NUuYyUeFZk-1AeLY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"43fe77dc-cda7-4ec1-a502-8969ab9d5f25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.153516} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f245de6d-4196-484b-b7e7-67077572ebd4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1576116} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"058d7f2f-eb00-4936-bc7e-10ec48235cec","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1664119} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"72e7fc3e-a8b9-4f69-af4a-4ea9d31aa049","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.1664672} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.166378791Z"}]},"request_id":"6ee08c33-8b3f-4526-957a-1eed24a1a21e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969646.194388} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"6fd5b2e3fafae71cc8187773de1de0ac"} gateway-1 | {"time_local":"14/Mar/2025:16:27:26 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.086","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6fd5b2e3fafae71cc8187773de1de0ac"} device-1 | {"level":"info","message":"POST /devices? 201 82ms","method":"POST","requestID":"6fd5b2e3fafae71cc8187773de1de0ac","responseTime":82,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0N30.49nSP4ikcc6BqCuhCH387v-fCpYr7m-GApHLA6QcagY","level":"info","message":"auth send jwt","requestID":"73829ccfcbfe641294f8024b5c16452a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"73829ccfcbfe641294f8024b5c16452a"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.781117,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"73829ccfcbfe641294f8024b5c16452a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969647,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0N30.49nSP4ikcc6BqCuhCH387v-fCpYr7m-GApHLA6QcagY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"2e6f3d66-5bb7-4c5b-a010-24e8ec1c1721","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969647.0589473} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4a7b54ef-fb46-42e8-a4fc-1d072de47c00","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969647.063118} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"d3a176c5-015c-4261-ae18-8dc48b59fb3c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969647.0728307} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"73829ccfcbfe641294f8024b5c16452a"} device-1 | {"level":"info","message":"PATCH /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a 200 44ms","method":"PATCH","requestID":"73829ccfcbfe641294f8024b5c16452a","responseTime":44,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"} gateway-1 | {"time_local":"14/Mar/2025:16:27:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.047","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"73829ccfcbfe641294f8024b5c16452a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0N30.49nSP4ikcc6BqCuhCH387v-fCpYr7m-GApHLA6QcagY","level":"info","message":"auth send jwt","requestID":"9ff4e553604003d53e32e99d3a12fe93"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9ff4e553604003d53e32e99d3a12fe93","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9ff4e553604003d53e32e99d3a12fe93"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:27Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.949918,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"9ff4e553604003d53e32e99d3a12fe93","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969647,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0N30.49nSP4ikcc6BqCuhCH387v-fCpYr7m-GApHLA6QcagY"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"9ff4e553604003d53e32e99d3a12fe93","responseTime":27,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9ff4e553604003d53e32e99d3a12fe93"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/websocket 200 38ms","method":"POST","requestID":"9ff4e553604003d53e32e99d3a12fe93","responseTime":38,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"9ff4e553604003d53e32e99d3a12fe93"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9cbee014db397938eb9c593da63803d0","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9cbee014db397938eb9c593da63803d0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/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":"9cbee014db397938eb9c593da63803d0"} device-1 | {"level":"info","message":"OPTIONS /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/websocket 200 1ms","method":"OPTIONS","requestID":"9cbee014db397938eb9c593da63803d0","responseTime":1,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"d573af7ea849c0b67db7e48324d08638"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d573af7ea849c0b67db7e48324d08638","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d573af7ea849c0b67db7e48324d08638"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.632817,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d573af7ea849c0b67db7e48324d08638","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"d573af7ea849c0b67db7e48324d08638","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d573af7ea849c0b67db7e48324d08638"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.028","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d573af7ea849c0b67db7e48324d08638"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/websocket 200 23ms","method":"POST","requestID":"d573af7ea849c0b67db7e48324d08638","responseTime":23,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"d577b5bdb29abfbd64473a5029b913ca"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d577b5bdb29abfbd64473a5029b913ca","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d577b5bdb29abfbd64473a5029b913ca"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.672975,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d577b5bdb29abfbd64473a5029b913ca","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d577b5bdb29abfbd64473a5029b913ca","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"9a0b80d1-b512-4f04-89d3-f109b6a80bd2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.5496473} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d577b5bdb29abfbd64473a5029b913ca","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d577b5bdb29abfbd64473a5029b913ca"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d577b5bdb29abfbd64473a5029b913ca"} device-1 | {"level":"info","message":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? 200 9ms","method":"GET","requestID":"d577b5bdb29abfbd64473a5029b913ca","responseTime":9,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"061037720c3d2a32fd192bf1883ad108"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"061037720c3d2a32fd192bf1883ad108","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"061037720c3d2a32fd192bf1883ad108"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.630735,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"061037720c3d2a32fd192bf1883ad108","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"061037720c3d2a32fd192bf1883ad108","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.166378791Z"}]},"request_id":"95d62d00-195e-45c2-889c-68e3853b0f9a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.562432} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"061037720c3d2a32fd192bf1883ad108","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"061037720c3d2a32fd192bf1883ad108"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"061037720c3d2a32fd192bf1883ad108"} device-1 | {"level":"info","message":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? 200 9ms","method":"GET","requestID":"061037720c3d2a32fd192bf1883ad108","responseTime":9,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4cfdcda03e746be197ea2874ce14be2a","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.628565,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4cfdcda03e746be197ea2874ce14be2a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4cfdcda03e746be197ea2874ce14be2a","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to run experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to book experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully booked experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.649179,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.596781,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"35ad8be0-53bb-494b-94b2-7329ffe84daf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.608503} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.166378791Z"}]},"request_id":"0d0bea05-bd5a-4f6a-a601-ce2c138ffbfa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.6092014} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? 200 11ms","method":"GET","requestID":"38a60c90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? 200 10ms","method":"GET","requestID":"38a65ab0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Setting up experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully locked booking for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to update booking for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully updated booking for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully set up experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38b01eb0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully running experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:34768","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.826479,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":21.063905,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.166378791Z"}]},"request_id":"20e89a91-c09f-4aaa-b701-3d53786eadfe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.6972265} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"580ea325-001a-41b0-b3bd-1f3f9460015c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.6975682} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.575563,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38b01eb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"38b01eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"ce8f7aaf-1136-4f56-90bf-bd420b9028b9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.6985433} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3c9c5368-81ec-43cf-9e07-f9ff648f550a#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3c9c5368-81ec-43cf-9e07-f9ff648f550a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"9358f088-1458-422c-bf84-8a3e2b9dfa98","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7033198} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e81f7062-5d50-4fa3-a4ce-f23bf215c079","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7034945} device-1 | {"level":"info","message":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? 200 38ms","method":"GET","requestID":"38aff7a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8?"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"4cfdcda03e746be197ea2874ce14be2a","responseTime":12,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38b01eb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling 200 38ms","method":"POST","requestID":"38b01eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? 200 41ms","method":"GET","requestID":"38afd090-00f1-11f0-9a2b-c98a3cf1c544","responseTime":41,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38b68750-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38b6d570-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"de0635d0-4a82-45be-a19a-9f56fc884847","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7388093} experiment-1 | {"level":"info","message":"POST /experiments? 201 169ms","method":"POST","requestID":"4cfdcda03e746be197ea2874ce14be2a","responseTime":169,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5ba2b029-90c1-42f0-a145-f5e4e0767574","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7395825} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.78932,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38b6d570-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"38b6d570-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":29.260567,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38b68750-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 32ms","method":"POST","requestID":"38b68750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"97e7d42f1324d8354dd92dadcabb2b85"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"97e7d42f1324d8354dd92dadcabb2b85","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"97e7d42f1324d8354dd92dadcabb2b85"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38b6d570-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling 200 36ms","method":"POST","requestID":"38b6d570-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38b68750-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.911211,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling 200 39ms","method":"POST","requestID":"38b68750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":39,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"97e7d42f1324d8354dd92dadcabb2b85","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"97e7d42f1324d8354dd92dadcabb2b85","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38bceff0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.103049477Z"}]},"request_id":"e2ba7ffd-2672-4d97-b2dd-736419c40abe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7521434} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"97e7d42f1324d8354dd92dadcabb2b85","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2cb4caa5-4096-4b66-92d1-c266c28215e9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.754396} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.517756,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"97e7d42f1324d8354dd92dadcabb2b85"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38bceff0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"97e7d42f1324d8354dd92dadcabb2b85"} device-1 | {"level":"info","message":"GET /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a? 200 11ms","method":"GET","requestID":"97e7d42f1324d8354dd92dadcabb2b85","responseTime":11,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a?"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"38bceff0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38bceff0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling 200 7ms","method":"POST","requestID":"38bceff0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Building connection plan","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY","level":"info","message":"auth send jwt","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475"} 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":"903d78d7-aaf3-45eb-9e4a-b3d166cdc035"},{"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":"5263585f-903e-48f2-824b-801af0ec4bd2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ab6f0a19-b59a-4a84-972f-b8568dcba3e9"}]},"level":"info","message":"Built pairwise service configurations","requestID":"4cfdcda03e746be197ea2874ce14be2a"} 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/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"},{"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/bf5803b3-b758-42e3-8a1f-20df3e9a08c8"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"4cfdcda03e746be197ea2874ce14be2a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:34778","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.609247,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fd6d4b702b84f6fd50d66b7b3eb09475","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.505376,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969648,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY0OH0.NXof9_Gzx7oB7OzytLlBXmTu6-qaAv9RxSQgZIgjCCY"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:26.166378791Z"}]},"request_id":"2406d86f-0a54-4454-b83a-f7ed45d46e65","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7903218} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475"} gateway-1 | {"time_local":"14/Mar/2025:16:27:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475"} device-1 | {"level":"info","message":"GET /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8? 200 33ms","method":"GET","requestID":"fd6d4b702b84f6fd50d66b7b3eb09475","responseTime":33,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"dde450b7-6415-4e11-b9a1-5dee7325112e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7957156} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"afb15d1d-e143-4867-867e-87a4b8e0b25f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.7958162} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536'","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536'","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 22ms","method":"POST","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544","responseTime":22,"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","requestID":"38c22010-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"4cfdcda03e746be197ea2874ce14be2a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38d0ed20-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eeaa6ce0-b45e-46dd-b6f0-75ffb330776a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.8861156} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.350503,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38d0ed20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"38d0ed20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38d0ed20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling 200 8ms","method":"POST","requestID":"38d0ed20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"38d273c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a5adefc8-cb44-4802-9608-33c4533f2a28","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969648.896397} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.673723,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"38d273c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"38d273c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"content":{"sdp":"v=0\r\no=- 4690148837944415519 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:d9ZR\r\na=ice-pwd:luoVt3q2vUl2qhIYBGzmFbu7\r\na=ice-options:trickle\r\na=fingerprint:sha-256 89:7C:2C:8A:B4:CE:F1:28:17:85:A6:66:89:D1:7C:0A:72:4D:63:C3:E5:8B:DC:E0:34:39:2D:86:E0:2B:14:A2\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"38d273c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling 200 10ms","method":"POST","requestID":"38d273c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling"} device-1 | {"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"717da2a62b42b66e8c160cc4f80df95b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"717da2a62b42b66e8c160cc4f80df95b","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/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"},{"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/bf5803b3-b758-42e3-8a1f-20df3e9a08c8"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"}}},"level":"info","message":"received a callback","requestID":"717da2a62b42b66e8c160cc4f80df95b"} device-1 | {"content":{"candidate":"candidate:2833465280 1 udp 2113937151 2820119f-7057-4127-b6b2-4ab811e02853.local 43006 typ host generation 0 ufrag d9ZR network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"717da2a62b42b66e8c160cc4f80df95b","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"717da2a62b42b66e8c160cc4f80df95b"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"7b992a5a833407033a8dcfb58a2f22cd","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"},{"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/bf5803b3-b758-42e3-8a1f-20df3e9a08c8"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"}}},"level":"info","message":"received a callback","requestID":"7b992a5a833407033a8dcfb58a2f22cd"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7b992a5a833407033a8dcfb58a2f22cd","responseTime":1,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3a0c0530-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:30Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9c51b3a8-e52b-415f-8f28-25e175e73536","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ef82cff-abf1-4758-be71-f475c077b344","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969650.951501} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.202616,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a0c0530-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","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","method":"POST","requestID":"3a0c0530-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3a0c0530-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536 200 7ms","method":"GET","requestID":"3a0c0530-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"7b992a5a833407033a8dcfb58a2f22cd","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"7b992a5a833407033a8dcfb58a2f22cd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a0f87a0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:30Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4ebf32c6-b982-4855-93a9-06601823372e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969650.9947786} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":22.913664,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a0f87a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"3a0f87a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a0f87a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling 200 28ms","method":"POST","requestID":"3a0f87a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a141b80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e894b9ef-7eac-45c2-aa44-d04aeb74690f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.0040562} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.207728,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a141b80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3a141b80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a141b80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling 200 7ms","method":"POST","requestID":"3a141b80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc","level":"info","message":"auth send jwt","requestID":"69629b0646d6e224c9dca8357c129e52"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"69629b0646d6e224c9dca8357c129e52","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","requestID":"69629b0646d6e224c9dca8357c129e52"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.336568,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"69629b0646d6e224c9dca8357c129e52","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969651,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"69629b0646d6e224c9dca8357c129e52","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","requestID":"69629b0646d6e224c9dca8357c129e52"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69629b0646d6e224c9dca8357c129e52"} experiment-1 | {"level":"info","message":"GET /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a 200 10ms","method":"GET","requestID":"69629b0646d6e224c9dca8357c129e52","responseTime":10,"status":200,"url":"/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc","level":"info","message":"auth send jwt","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dde95f8740408ee6d0ffb3fcbbf154be","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.645762,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dde95f8740408ee6d0ffb3fcbbf154be","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969651,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"dde95f8740408ee6d0ffb3fcbbf154be","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Attempting to finish experiment","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.667683,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969651,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536","device":"bf5803b3-b758-42e3-8a1f-20df3e9a08c8","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"b5539dd3fe10126cf763112351ed7067","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b5539dd3fe10126cf763112351ed7067","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4968e94c-21d2-4533-b839-2c9d649e186d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1103854} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9c51b3a8-e52b-415f-8f28-25e175e73536': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9c51b3a8-e52b-415f-8f28-25e175e73536","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"fa709701-9db2-4ba4-800e-f743d0b49dd7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1106653} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"05cc4da8fef5966033010ae308fa90b9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"},{"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/bf5803b3-b758-42e3-8a1f-20df3e9a08c8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"}}},"level":"info","message":"received a callback","requestID":"b5539dd3fe10126cf763112351ed7067"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"05cc4da8fef5966033010ae308fa90b9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a"},{"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/bf5803b3-b758-42e3-8a1f-20df3e9a08c8"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"}}},"level":"info","message":"received a callback","requestID":"05cc4da8fef5966033010ae308fa90b9"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","method":"POST","requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/relations/update"} device-1 | {"data":{"peerconnection":"9c51b3a8-e52b-415f-8f28-25e175e73536","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536 204 54ms","method":"DELETE","requestID":"3a22c180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":54,"status":204,"url":"/peerconnections/9c51b3a8-e52b-415f-8f28-25e175e73536"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"},"level":"info","message":"Successfully finished experiment","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a2e5a40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb4c8c467-fd71-4c19-99c4-2c80b3a3c98a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f224e9b8-64f7-433a-8395-200d8751ad6c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1770356} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.244589,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a2e5a40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3a2e5a40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a2e5a40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling 200 9ms","method":"POST","requestID":"3a2e5a40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3c9c5368-81ec-43cf-9e07-f9ff648f550a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3c9c5368-81ec-43cf-9e07-f9ff648f550a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"a96901cd-4322-4bb1-bd1b-7d6fde5befe1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1833603} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf840368-6b74-424f-8d04-873a9652e80f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1837137} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"dde95f8740408ee6d0ffb3fcbbf154be","responseTime":14,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3a305610-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fbf5803b3-b758-42e3-8a1f-20df3e9a08c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"534307a2-20db-4761-b65e-1132914916ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.1898475} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.57444,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3a305610-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3a305610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3a305610-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling 200 9ms","method":"POST","requestID":"3a305610-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.173","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dde95f8740408ee6d0ffb3fcbbf154be"} experiment-1 | {"level":"info","message":"DELETE /experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a 204 171ms","method":"DELETE","requestID":"dde95f8740408ee6d0ffb3fcbbf154be","responseTime":171,"status":204,"url":"/experiments/3c9c5368-81ec-43cf-9e07-f9ff648f550a"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2542","request_time":"4.116","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"4ff8ff5a2fcffd82e9abb7604cd05353"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 125ms","method":"POST","requestID":"b5539dd3fe10126cf763112351ed7067","responseTime":125,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"b5539dd3fe10126cf763112351ed7067"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc","level":"info","message":"auth send jwt","requestID":"0371aae7382d00d593198118f08fa82d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"05cc4da8fef5966033010ae308fa90b9","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.130","http_referrer":"","http_user_agent":"node-fetch","requestID":"05cc4da8fef5966033010ae308fa90b9"} device-1 | {"level":"info","message":"postDevices called","requestID":"0371aae7382d00d593198118f08fa82d"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2358","request_time":"2.716","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3023c071065454b1aba079bba33780fb"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.182999,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0371aae7382d00d593198118f08fa82d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969651,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b4c8c467-fd71-4c19-99c4-2c80b3a3c98a' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c5ef07d1-4f57-4495-a86c-07e58e1e749d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.286158} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2897e2cd-c211-4728-a1b5-e6e129a4909d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.2908416} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":4,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/bf5803b3-b758-42e3-8a1f-20df3e9a08c8' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"8d3fa658-892a-4ff0-81d0-b815d0be6a6f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.301021} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f28619d4-d0f0-4763-9cad-379a6d16095b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3012278} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"5da93436-98f6-444e-be6d-c484115b0b22","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.329142} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"0371aae7382d00d593198118f08fa82d"} device-1 | {"level":"info","message":"POST /devices? 201 90ms","method":"POST","requestID":"0371aae7382d00d593198118f08fa82d","responseTime":90,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.096","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0371aae7382d00d593198118f08fa82d"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc","level":"info","message":"auth send jwt","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.752121,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969651,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1MX0.vAa8yDAdfedWBLKiexxI1TsR8HO2jg7m9KB1CX57NNc"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2e9a5ed2-ede4-4e07-8349-fc3be7628334","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3494806} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3a2e3c32-cace-4a4e-9358-5ab7bde4b2aa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3777127} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"ce7ebe89-08fe-4eb8-9329-38b469f9cf09","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3869948} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7337fc8c-f1a2-4d01-9710-babe9182228b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3871446} authorization-1 | {"level":"info","message":"POST /relations/update 200 11ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":11,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.386968478Z"}]},"request_id":"f8a1ff70-0a15-4a0f-91e8-ad9cb7fbd87a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969651.3911636} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc"} gateway-1 | {"time_local":"14/Mar/2025:16:27:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"8d8fdfb2569c9cef92c338b7aab69bcc","responseTime":58,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Mn0.LxqG3m67RBQIRKhvhHFb3PlpyT5oskA0CwYfXeQeE8A","level":"info","message":"auth send jwt","requestID":"c16ec1f8becd52276361653353aecdd6"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"c16ec1f8becd52276361653353aecdd6"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:32Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.670279,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c16ec1f8becd52276361653353aecdd6","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969652,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Mn0.LxqG3m67RBQIRKhvhHFb3PlpyT5oskA0CwYfXeQeE8A"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"95cdd368-9e3b-4722-b97e-053c5992bc2b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969652.264391} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"48d68d4b-6eff-4600-84ba-11e12e677736","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969652.2685168} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":27,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"8ecba95f-491c-426c-bcc0-08ba68452086","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969652.3061206} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"c16ec1f8becd52276361653353aecdd6"} device-1 | {"level":"info","message":"PATCH /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc 200 51ms","method":"PATCH","requestID":"c16ec1f8becd52276361653353aecdd6","responseTime":51,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"} gateway-1 | {"time_local":"14/Mar/2025:16:27:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.054","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"c16ec1f8becd52276361653353aecdd6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Mn0.LxqG3m67RBQIRKhvhHFb3PlpyT5oskA0CwYfXeQeE8A","level":"info","message":"auth send jwt","requestID":"d176704a1e238421063a9605dcbc1b1c"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d176704a1e238421063a9605dcbc1b1c","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"d176704a1e238421063a9605dcbc1b1c"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:32Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719763,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:32Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d176704a1e238421063a9605dcbc1b1c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969652,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Mn0.LxqG3m67RBQIRKhvhHFb3PlpyT5oskA0CwYfXeQeE8A"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"d176704a1e238421063a9605dcbc1b1c","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"d176704a1e238421063a9605dcbc1b1c"} gateway-1 | {"time_local":"14/Mar/2025:16:27:32 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"d176704a1e238421063a9605dcbc1b1c"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/websocket 200 38ms","method":"POST","requestID":"d176704a1e238421063a9605dcbc1b1c","responseTime":38,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0c4b6f252b2b98ff63d026eedf49c822","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0c4b6f252b2b98ff63d026eedf49c822","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/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":"0c4b6f252b2b98ff63d026eedf49c822"} device-1 | {"level":"info","message":"OPTIONS /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/websocket 200 1ms","method":"OPTIONS","requestID":"0c4b6f252b2b98ff63d026eedf49c822","responseTime":1,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k","level":"info","message":"auth send jwt","requestID":"a26e78003037527ef26a41d6a1305acb"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a26e78003037527ef26a41d6a1305acb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"a26e78003037527ef26a41d6a1305acb"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.424325,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a26e78003037527ef26a41d6a1305acb","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"a26e78003037527ef26a41d6a1305acb","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"a26e78003037527ef26a41d6a1305acb"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/websocket 200 20ms","method":"POST","requestID":"a26e78003037527ef26a41d6a1305acb","responseTime":20,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a26e78003037527ef26a41d6a1305acb"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k","level":"info","message":"auth send jwt","requestID":"dfabeec8909a4260bd3ead35a94cc727"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dfabeec8909a4260bd3ead35a94cc727","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"dfabeec8909a4260bd3ead35a94cc727"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.677272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"dfabeec8909a4260bd3ead35a94cc727","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"dfabeec8909a4260bd3ead35a94cc727","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"64a13303-d14f-44b3-a095-5dba8c1382d3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.7766173} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"dfabeec8909a4260bd3ead35a94cc727","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"dfabeec8909a4260bd3ead35a94cc727"} device-1 | {"level":"info","message":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? 200 10ms","method":"GET","requestID":"dfabeec8909a4260bd3ead35a94cc727","responseTime":10,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dfabeec8909a4260bd3ead35a94cc727"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k","level":"info","message":"auth send jwt","requestID":"d072b0774ff101dbd3bcd9efe73dfac5"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d072b0774ff101dbd3bcd9efe73dfac5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d072b0774ff101dbd3bcd9efe73dfac5"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.001076,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d072b0774ff101dbd3bcd9efe73dfac5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d072b0774ff101dbd3bcd9efe73dfac5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.386968478Z"}]},"request_id":"dbd1616a-afec-47e7-b5a5-b7e0181cd912","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.7927866} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d072b0774ff101dbd3bcd9efe73dfac5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d072b0774ff101dbd3bcd9efe73dfac5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d072b0774ff101dbd3bcd9efe73dfac5"} device-1 | {"level":"info","message":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? 200 9ms","method":"GET","requestID":"d072b0774ff101dbd3bcd9efe73dfac5","responseTime":9,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k","level":"info","message":"auth send jwt","requestID":"042a48a7f70ad6e437236f8164b9286f"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"042a48a7f70ad6e437236f8164b9286f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"042a48a7f70ad6e437236f8164b9286f"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.264735,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"042a48a7f70ad6e437236f8164b9286f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"042a48a7f70ad6e437236f8164b9286f","responseTime":5,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to run experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to book experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully booked experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.921334,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.858376,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"ee98b921-9259-456f-948a-dbef95ee1342","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.8838828} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.386968478Z"}]},"request_id":"0d2fd198-8676-4568-8c78-252888b8e1a1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.8871682} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? 200 14ms","method":"GET","requestID":"3bcaa520-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc?"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? 200 14ms","method":"GET","requestID":"3bcaf340-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Setting up experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully locked booking for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to update booking for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully updated booking for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully set up experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bd9e760-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.908286,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully running experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.797514,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f97b45e5-0cdd-452e-ab6a-095eed1283e9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.9802876} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.386968478Z"}]},"request_id":"c8bb040c-0d4b-4259-ab1e-9a94f70f850e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.9824204} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.917647,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bd9e760-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3bd9e760-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"f522f033-cab0-4530-a615-9fca3ffc6f3d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.9830613} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bd9e760-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling 200 14ms","method":"POST","requestID":"3bd9e760-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? 200 15ms","method":"GET","requestID":"3bd9c050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":15,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? 200 17ms","method":"GET","requestID":"3bd99940-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bdc5860-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F50b26fbc-6ae1-4de5-a5a6-12c571185b6a#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F50b26fbc-6ae1-4de5-a5a6-12c571185b6a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"22b5f6ea-931d-4b6b-bb62-3984daee252d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.9922042} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"196d6404-e88b-4531-9f51-d180f06b695f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969653.9923522} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:33Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"042a48a7f70ad6e437236f8164b9286f","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"32765dd9-1b6f-45b3-aedd-5c36ee9eeb35","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.0191665} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.185655,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bdc5860-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"3bdc5860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3be0ec40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bdc5860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling 200 34ms","method":"POST","requestID":"3bdc5860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7e6f490c-9707-445e-9c36-39f89e35ade9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.0253744} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.070905,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3be0ec40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3be0ec40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 228ms","method":"POST","requestID":"042a48a7f70ad6e437236f8164b9286f","responseTime":228,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.232","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"042a48a7f70ad6e437236f8164b9286f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3be0ec40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling 200 10ms","method":"POST","requestID":"3be0ec40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3be299f0-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1NH0.If91ms_tr7fuJ5zj8Dh4FGCW6mJb27mAy6jHKS0wF9Y","level":"info","message":"auth send jwt","requestID":"d912e366491c2ac942eeeae3712a9a47"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d912e366491c2ac942eeeae3712a9a47","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d912e366491c2ac942eeeae3712a9a47"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e45a3a4b-8f38-4c59-80f7-89490d4671f0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.035518} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.663464,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.221772,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d912e366491c2ac942eeeae3712a9a47","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969654,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1NH0.If91ms_tr7fuJ5zj8Dh4FGCW6mJb27mAy6jHKS0wF9Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d912e366491c2ac942eeeae3712a9a47","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3be299f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3be299f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.300996807Z"}]},"request_id":"da3fb41f-0847-4b20-87a6-24f5f60bd80d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.039364} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3be299f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling 200 9ms","method":"POST","requestID":"3be299f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d912e366491c2ac942eeeae3712a9a47","responseTime":2,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Building connection plan","requestID":"042a48a7f70ad6e437236f8164b9286f"} 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":"1acf0a80-bb8c-4484-8f3b-716bf82c3877"},{"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":"3f02a589-4301-448f-8bd3-e6d29c191fab"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7bee6bd6-88ed-4df8-92f5-82fae8a144b2"}]},"level":"info","message":"Built pairwise service configurations","requestID":"042a48a7f70ad6e437236f8164b9286f"} 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/a471daf8-85d1-4151-9d3e-0c53a5f80473"},{"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/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"042a48a7f70ad6e437236f8164b9286f"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d912e366491c2ac942eeeae3712a9a47"} gateway-1 | {"time_local":"14/Mar/2025:16:27:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d912e366491c2ac942eeeae3712a9a47"} device-1 | {"level":"info","message":"GET /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc? 200 34ms","method":"GET","requestID":"d912e366491c2ac942eeeae3712a9a47","responseTime":34,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc?"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.415302,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969653,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1M30.gwVqVyPcWkzE9rO8h8_78nysKlAN8VQSnMn1qvsdZ8k"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1NH0.If91ms_tr7fuJ5zj8Dh4FGCW6mJb27mAy6jHKS0wF9Y","level":"info","message":"auth send jwt","requestID":"6a914c89d1c534f6fb956bbc210969fc"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6a914c89d1c534f6fb956bbc210969fc","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6a914c89d1c534f6fb956bbc210969fc"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645916,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6a914c89d1c534f6fb956bbc210969fc","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969654,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1NH0.If91ms_tr7fuJ5zj8Dh4FGCW6mJb27mAy6jHKS0wF9Y"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"6a914c89d1c534f6fb956bbc210969fc","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:31.386968478Z"}]},"request_id":"6d9302e0-1651-4f5f-ad6d-3025a1107438","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.0781157} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"6a914c89d1c534f6fb956bbc210969fc","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"47f9ba53-5cf2-4f9d-af6c-22d3e4d15f14","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.0791843} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f14726fd-849f-458a-b77e-79711432dca2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.07941} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6a914c89d1c534f6fb956bbc210969fc"} device-1 | {"level":"info","message":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? 200 10ms","method":"GET","requestID":"6a914c89d1c534f6fb956bbc210969fc","responseTime":10,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6a914c89d1c534f6fb956bbc210969fc"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565'","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565'","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 25ms","method":"POST","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"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","requestID":"3be7f120-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","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"}],"tiebreaker":false} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"042a48a7f70ad6e437236f8164b9286f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bf2eda0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6247e176-1402-40a5-80f0-c7fb9e29afcf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.1666934} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.523355,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bf2eda0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"3bf2eda0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bf2eda0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling 200 32ms","method":"POST","requestID":"3bf2eda0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3bf7f6b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3d104e2b-1bbe-452c-aa76-1864a76c4400","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969654.1753597} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.183885,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3bf7f6b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3bf7f6b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3bf7f6b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling 200 7ms","method":"POST","requestID":"3bf7f6b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling"} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"content":{"sdp":"v=0\r\no=- 2661039529770070960 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=msid-semantic: WMS\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:PeTW\r\na=ice-pwd:nNmewp+Im1+0hwUWFBwTSCpF\r\na=ice-options:trickle\r\na=fingerprint:sha-256 7C:49:B2:70:DD:60:C3:8F:2C:89:E1:88:96:69:EA:B6:11:BF:41:35:A4:06:AB:61:44:33:5E:D3:D9:60:DB:52\r\na=setup:active\r\na=mid:0\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"answer"},"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:229623112 1 udp 2113937151 545c1af6-b7bb-4e8c-9728-153cb868966e.local 39898 typ host generation 0 ufrag PeTW network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"84330858f325035db40f28a21b839181","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"84330858f325035db40f28a21b839181","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} 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/a471daf8-85d1-4151-9d3e-0c53a5f80473"},{"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/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"}}},"level":"info","message":"received a callback","requestID":"84330858f325035db40f28a21b839181"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"84330858f325035db40f28a21b839181","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"84330858f325035db40f28a21b839181"} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d7705316d4a21fe22c9e4b1e06928c9a","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d7705316d4a21fe22c9e4b1e06928c9a","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473"},{"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/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"}}},"level":"info","message":"received a callback","requestID":"d7705316d4a21fe22c9e4b1e06928c9a"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3d3112f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F44319989-6f48-47ad-9168-d7a8bff8a565","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fb656738-6e2a-4ec5-80df-dbea58bb37de","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.2273657} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.205509,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d3112f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3d3112f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3d3112f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565 200 7ms","method":"GET","requestID":"3d3112f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 24ms","method":"POST","requestID":"d7705316d4a21fe22c9e4b1e06928c9a","responseTime":24,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch","requestID":"d7705316d4a21fe22c9e4b1e06928c9a"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3d344740-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16f1af50-e25e-42cb-9fa9-f2a03393c10f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.2478638} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.10289,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d344740-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"3d344740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3d344740-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling 200 32ms","method":"POST","requestID":"3d344740-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3d395050-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e4134026-17bf-452d-87b5-2975e3627791","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.282338} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.882469,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d395050-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3d395050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3d395050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling 200 9ms","method":"POST","requestID":"3d395050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg","level":"info","message":"auth send jwt","requestID":"c81470d3685b9d835cb65773130353e5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c81470d3685b9d835cb65773130353e5","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","requestID":"c81470d3685b9d835cb65773130353e5"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.826266,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c81470d3685b9d835cb65773130353e5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969656,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c81470d3685b9d835cb65773130353e5","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","requestID":"c81470d3685b9d835cb65773130353e5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c81470d3685b9d835cb65773130353e5"} experiment-1 | {"level":"info","message":"GET /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a 200 10ms","method":"GET","requestID":"c81470d3685b9d835cb65773130353e5","responseTime":10,"status":200,"url":"/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg","level":"info","message":"auth send jwt","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"f3861dba90fe1ddb1771ad871fc1adf3","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.860924,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f3861dba90fe1ddb1771ad871fc1adf3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969656,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"f3861dba90fe1ddb1771ad871fc1adf3","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Attempting to finish experiment","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.747106,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969656,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565","device":"a471daf8-85d1-4151-9d3e-0c53a5f80473","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"7eb07c21-3a21-4d56-be5a-8fc7c97425cc","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"44319989-6f48-47ad-9168-d7a8bff8a565","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F44319989-6f48-47ad-9168-d7a8bff8a565': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F44319989-6f48-47ad-9168-d7a8bff8a565","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"0281cc8c-7f6b-4486-9342-cc1895871f55","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.386977} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"56e682ae-be37-49b0-b246-1f5c5e191723","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.387314} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ecd1ccaecb9d36e589ddbdd5c65b8783","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ecd1ccaecb9d36e589ddbdd5c65b8783","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eccd83f38db4e574ddd88caa0e5b127c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473"},{"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/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"}}},"level":"info","message":"received a callback","requestID":"ecd1ccaecb9d36e589ddbdd5c65b8783"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"eccd83f38db4e574ddd88caa0e5b127c","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473"},{"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/7eb07c21-3a21-4d56-be5a-8fc7c97425cc"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"}}},"level":"info","message":"received a callback","requestID":"eccd83f38db4e574ddd88caa0e5b127c"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565 204 51ms","method":"DELETE","requestID":"3d47cf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":51,"status":204,"url":"/peerconnections/44319989-6f48-47ad-9168-d7a8bff8a565"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"},"level":"info","message":"Successfully finished experiment","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3d522f80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa471daf8-85d1-4151-9d3e-0c53a5f80473","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"34e11d0d-293a-4af2-aac9-bbc3b932a293","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.4679146} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.249839,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d522f80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3d522f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3d522f80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling 200 31ms","method":"POST","requestID":"3d522f80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3d573890-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F50b26fbc-6ae1-4de5-a5a6-12c571185b6a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F50b26fbc-6ae1-4de5-a5a6-12c571185b6a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"e7d2ffcb-1bec-4426-8272-0698cd4879f6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.4759943} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5b334e4-a955-4542-93ab-7a9835bc7c11","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.4761238} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 39ms","method":"POST","requestID":"f3861dba90fe1ddb1771ad871fc1adf3","responseTime":39,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7eb07c21-3a21-4d56-be5a-8fc7c97425cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ba14c703-dca2-4b4c-9760-7e500df4e345","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.4790227} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.250203,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3d573890-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3d573890-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3d573890-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling 200 10ms","method":"POST","requestID":"3d573890-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.240","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f3861dba90fe1ddb1771ad871fc1adf3"} experiment-1 | {"level":"info","message":"DELETE /experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a 204 238ms","method":"DELETE","requestID":"f3861dba90fe1ddb1771ad871fc1adf3","responseTime":238,"status":204,"url":"/experiments/50b26fbc-6ae1-4de5-a5a6-12c571185b6a"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2492","request_time":"4.224","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"913aea9b42a332365c6c4f3e0429b4d2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 188ms","method":"POST","requestID":"ecd1ccaecb9d36e589ddbdd5c65b8783","responseTime":188,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"ecd1ccaecb9d36e589ddbdd5c65b8783"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"eccd83f38db4e574ddd88caa0e5b127c","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch","requestID":"eccd83f38db4e574ddd88caa0e5b127c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg","level":"info","message":"auth send jwt","requestID":"ed7f193cbf0ab900bb8d237463723a86"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"ed7f193cbf0ab900bb8d237463723a86"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.606104,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ed7f193cbf0ab900bb8d237463723a86","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969656,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":7,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2363","request_time":"2.842","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6b342f0cea851b5062025e2f29103fc5"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7eb07c21-3a21-4d56-be5a-8fc7c97425cc' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9f60e87d-5320-4032-964a-12427cca3496","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6227605} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"55b67ac6-2b2d-4d3b-b300-066dc4f9770f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6272573} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":3,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a471daf8-85d1-4151-9d3e-0c53a5f80473' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"80db418f-ca9d-48fb-a702-ce6be1d431fd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6370044} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7611ad0a-6514-4cf7-881a-9e993bc2f521","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6372094} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"f9ac02ec-14e6-47e2-8165-93abfce2dd88","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6409142} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"ed7f193cbf0ab900bb8d237463723a86"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.066","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed7f193cbf0ab900bb8d237463723a86"} device-1 | {"level":"info","message":"POST /devices? 201 61ms","method":"POST","requestID":"ed7f193cbf0ab900bb8d237463723a86","responseTime":61,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg","level":"info","message":"auth send jwt","requestID":"471a6a597e0e3960f14015110eb9ebe8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"471a6a597e0e3960f14015110eb9ebe8"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.68303,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"471a6a597e0e3960f14015110eb9ebe8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969656,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1Nn0.iT9MKnsZhXZtbGLtIryFaijRRwds-gvhe0WuRLnHMcg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e473433a-243f-4cff-9e9c-44f3e73b3260","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6612108} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"43b37b57-4717-4caf-8f56-b2768362831e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.665424} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3f1eab9f-2015-4839-87cd-13066e93e0f0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6760125} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"435648eb-8ef2-4281-8ccd-962666b21c82","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.676133} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"02b5483e-e61b-40a5-b139-cd79bb8df01b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969656.6814015} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"471a6a597e0e3960f14015110eb9ebe8"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"471a6a597e0e3960f14015110eb9ebe8","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"471a6a597e0e3960f14015110eb9ebe8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"45b109a093040aa1e45369633d977b8b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"45b109a093040aa1e45369633d977b8b"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.64703,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45b109a093040aa1e45369633d977b8b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.636994,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"18cedff9-aea3-476c-ac77-2ad697d8b5d6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.5282793} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"deab7e48-37ce-49ae-bd36-91b92bcc54a0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.5289166} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4de55e1-de0a-4712-901d-373ad08de425","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.5325108} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"485b490f-d69b-493f-b95d-3ba700095d4d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.5333977} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"fbe06b35-86ed-4267-94e1-24d02572af25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.535947} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c5466404-8e53-4509-a67d-7666e645200b HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1"} device-1 | {"level":"info","message":"PATCH /devices/c5466404-8e53-4509-a67d-7666e645200b 200 17ms","method":"PATCH","requestID":"26f1acd0c86ee2eee2a20aec06b7f5e1","responseTime":17,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"917f4913c79225a9385a74e5e416a5a5"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"917f4913c79225a9385a74e5e416a5a5","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"917f4913c79225a9385a74e5e416a5a5"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.878113,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"917f4913c79225a9385a74e5e416a5a5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"917f4913c79225a9385a74e5e416a5a5","responseTime":28,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"b99973e2-240d-45fc-8ba5-f87ef67db9d1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.5696886} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"45b109a093040aa1e45369633d977b8b"} device-1 | {"level":"info","message":"PATCH /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d 200 77ms","method":"PATCH","requestID":"45b109a093040aa1e45369633d977b8b","responseTime":77,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.081","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"45b109a093040aa1e45369633d977b8b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"0213fb798124f59226e5c5bc9c77c912"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0213fb798124f59226e5c5bc9c77c912","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"0213fb798124f59226e5c5bc9c77c912"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.68054,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0213fb798124f59226e5c5bc9c77c912","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"0213fb798124f59226e5c5bc9c77c912","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"917f4913c79225a9385a74e5e416a5a5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"917f4913c79225a9385a74e5e416a5a5"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/websocket 200 41ms","method":"POST","requestID":"917f4913c79225a9385a74e5e416a5a5","responseTime":41,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"0213fb798124f59226e5c5bc9c77c912"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/websocket 200 13ms","method":"POST","requestID":"0213fb798124f59226e5c5bc9c77c912","responseTime":13,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.016","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"0213fb798124f59226e5c5bc9c77c912"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"6b1e3e3f4ea6beb15fc14687c32de848"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"6b1e3e3f4ea6beb15fc14687c32de848","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"6b1e3e3f4ea6beb15fc14687c32de848"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.731304,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"6b1e3e3f4ea6beb15fc14687c32de848","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"6b1e3e3f4ea6beb15fc14687c32de848","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"de5ab541-0289-4a4c-98bc-cb4b66e7c85a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.6656528} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"6b1e3e3f4ea6beb15fc14687c32de848","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"6b1e3e3f4ea6beb15fc14687c32de848"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b1e3e3f4ea6beb15fc14687c32de848"} device-1 | {"level":"info","message":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? 200 33ms","method":"GET","requestID":"6b1e3e3f4ea6beb15fc14687c32de848","responseTime":33,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"e842c36a6364104c05eb40e85637e8c5"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e842c36a6364104c05eb40e85637e8c5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"e842c36a6364104c05eb40e85637e8c5"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.676045,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e842c36a6364104c05eb40e85637e8c5","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e842c36a6364104c05eb40e85637e8c5","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"3b0fc34d-0767-4512-beb9-13c3b131678e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.6786902} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"e842c36a6364104c05eb40e85637e8c5","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"e842c36a6364104c05eb40e85637e8c5"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e842c36a6364104c05eb40e85637e8c5"} device-1 | {"level":"info","message":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? 200 9ms","method":"GET","requestID":"e842c36a6364104c05eb40e85637e8c5","responseTime":9,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"4dcd63e304b02ac3746121c915b90330"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4dcd63e304b02ac3746121c915b90330","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"4dcd63e304b02ac3746121c915b90330"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":3.676684,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4dcd63e304b02ac3746121c915b90330","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"4dcd63e304b02ac3746121c915b90330","responseTime":26,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to run experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to book experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully booked experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":24.791915,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.578812,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"996bf4fb-28f0-4aa9-90d1-f0c3f3badd62","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.7656827} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"bf6f8d6c-3c5c-476f-a2d9-500a330007a3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.766367} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? 200 36ms","method":"GET","requestID":"3e17a260-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? 200 36ms","method":"GET","requestID":"3e17c970-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Setting up experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully locked booking for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to update booking for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully updated booking for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully set up experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e269680-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.784739,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully running experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674808,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"169ce477-5ba8-4091-929e-12b122c5ec2c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.8621552} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"311bdbef-1883-4dba-88cd-ed5f297cb283","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.8629544} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75b8d891-dc3a-472e-8aa5-2c3f4cf69e3e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.863413} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.783699,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e269680-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"3e269680-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? 200 37ms","method":"GET","requestID":"3e266f70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? 200 38ms","method":"GET","requestID":"3e264860-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e269680-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling 200 37ms","method":"POST","requestID":"3e269680-00f1-11f0-9a2b-c98a3cf1c544","responseTime":37,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e2c62e0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88174ecf-90bb-4c2a-8fea-1156ffe8a13e#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88174ecf-90bb-4c2a-8fea-1156ffe8a13e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"e006b75e-a9aa-41c8-9508-da185f5c931b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.8710837} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e2cb100-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0a061ae-803f-4b2f-a0e9-2e80f672ea2f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.871989} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 18ms","method":"POST","requestID":"4dcd63e304b02ac3746121c915b90330","responseTime":18,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5442c26e-4894-4bd0-902c-e065bff23c4f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.8746517} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.309121,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e2c62e0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3e2c62e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af6c6a54-2b06-47bb-8966-9e16bb2d05c8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.8769295} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.469936,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e2cb100-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e2cb100-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e2c62e0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling 200 10ms","method":"POST","requestID":"3e2c62e0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e2cb100-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/signaling 200 33ms","method":"POST","requestID":"3e2cb100-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e31e120-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"level":"info","message":"POST /experiments? 201 221ms","method":"POST","requestID":"4dcd63e304b02ac3746121c915b90330","responseTime":221,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.225","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4dcd63e304b02ac3746121c915b90330"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"64272b59-e8d6-4ca8-bce3-60a4ad731b79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.910034} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.248318,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"723415978477b7e9e00aebc8dd9f4f6b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"723415978477b7e9e00aebc8dd9f4f6b","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e31e120-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"723415978477b7e9e00aebc8dd9f4f6b"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e31e120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651185,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e31e120-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"723415978477b7e9e00aebc8dd9f4f6b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/signaling 200 9ms","method":"POST","requestID":"3e31e120-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/signaling"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"723415978477b7e9e00aebc8dd9f4f6b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Building connection plan","requestID":"4dcd63e304b02ac3746121c915b90330"} 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":"2b2c32e7-35f1-42a6-9d1e-2965f5251ff0"},{"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":"8a456b76-d558-4014-bbb6-656b97001751"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"54ddafcc-56de-49a8-8524-df8117e8d75f"}]},"level":"info","message":"Built pairwise service configurations","requestID":"4dcd63e304b02ac3746121c915b90330"} 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/c5466404-8e53-4509-a67d-7666e645200b"},{"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/613321e0-72d6-42ab-a459-3e9732ce6a3d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"4dcd63e304b02ac3746121c915b90330"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.636969492Z"}]},"request_id":"d296545d-ed30-4d1e-9ebd-ec58fecec78a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.9182243} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"723415978477b7e9e00aebc8dd9f4f6b","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.679176,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"723415978477b7e9e00aebc8dd9f4f6b"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"723415978477b7e9e00aebc8dd9f4f6b"} device-1 | {"level":"info","message":"GET /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d? 200 12ms","method":"GET","requestID":"723415978477b7e9e00aebc8dd9f4f6b","responseTime":12,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0","level":"info","message":"auth send jwt","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"62d371c1-53f5-435d-8a0a-2799ab33f887","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.92844} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dd388287-8155-4fc4-9b6f-a702cb1b0ddf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.9528515} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.765758,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"d6ae0f4b5232cc475eb9bb191d7c160d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969657,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY1N30.sxu2KWgQ2Un8TzRT7316wC9wB7XgXcvpw-23gbH4pX0"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:36.675988770Z"}]},"request_id":"c0932f27-4325-4f5c-87d0-7ff3f2b80f69","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969657.9585865} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18'","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18'","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 49ms","method":"POST","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":49,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d"} device-1 | {"level":"info","message":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? 200 39ms","method":"GET","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d","responseTime":39,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c5466404-8e53-4509-a67d-7666e645200b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d6ae0f4b5232cc475eb9bb191d7c160d"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"3e338ed0-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"4dcd63e304b02ac3746121c915b90330"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e4282f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:38Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"abfbc9c5-bf46-40a1-b87d-b738290b1013","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969658.0192957} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.875772,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e4282f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3e4282f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e4282f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling 200 8ms","method":"POST","requestID":"3e4282f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3e43e280-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:38Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5bfec8a1-66d4-4ef3-bfdd-041fb02830bb","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969658.0281916} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.041994,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3e43e280-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 26ms","method":"POST","requestID":"3e43e280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3e43e280-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/signaling 200 27ms","method":"POST","requestID":"3e43e280-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/signaling"} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"0c65af71ec5e017057b3ec170e02b3f6","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0c65af71ec5e017057b3ec170e02b3f6","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/c5466404-8e53-4509-a67d-7666e645200b"},{"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/613321e0-72d6-42ab-a459-3e9732ce6a3d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"}}},"level":"info","message":"received a callback","requestID":"0c65af71ec5e017057b3ec170e02b3f6"} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"0c65af71ec5e017057b3ec170e02b3f6","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"0c65af71ec5e017057b3ec170e02b3f6"} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"55e0ea9fe4c5975027ea61f3b0352012","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"55e0ea9fe4c5975027ea61f3b0352012","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b"},{"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/613321e0-72d6-42ab-a459-3e9732ce6a3d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"}}},"level":"info","message":"received a callback","requestID":"55e0ea9fe4c5975027ea61f3b0352012"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"3f797c50-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b1c71b0-0f69-4064-97c6-cdc649873b18","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a7eb2e6f-2b2b-425c-b72e-a4a5a977d58b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.0574415} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.150456,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3f797c50-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18","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","method":"POST","requestID":"3f797c50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"3f797c50-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18 200 8ms","method":"GET","requestID":"3f797c50-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 26ms","method":"POST","requestID":"55e0ea9fe4c5975027ea61f3b0352012","responseTime":26,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"55e0ea9fe4c5975027ea61f3b0352012"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f7cd7b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40df3959-f1b8-4526-8212-3e1bde219303","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.080213} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.644904,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3f7cd7b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3f7cd7b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f7cd7b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/signaling 200 9ms","method":"POST","requestID":"3f7cd7b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3f7e8560-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0dfbded4-b169-4ad8-97d8-117d4e754fa3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.1147583} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.439798,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3f7e8560-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"3f7e8560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3f7e8560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling 200 32ms","method":"POST","requestID":"3f7e8560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg","level":"info","message":"auth send jwt","requestID":"414c310a4d0d686542bcb13e9ebde890"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"414c310a4d0d686542bcb13e9ebde890","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","requestID":"414c310a4d0d686542bcb13e9ebde890"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.648472,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"414c310a4d0d686542bcb13e9ebde890","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969660,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"414c310a4d0d686542bcb13e9ebde890","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","requestID":"414c310a4d0d686542bcb13e9ebde890"} experiment-1 | {"level":"info","message":"GET /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e 200 8ms","method":"GET","requestID":"414c310a4d0d686542bcb13e9ebde890","responseTime":8,"status":200,"url":"/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.012","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"414c310a4d0d686542bcb13e9ebde890"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg","level":"info","message":"auth send jwt","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46ddfa49f4b6f75cb383b7bfe442970b","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.700072,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"46ddfa49f4b6f75cb383b7bfe442970b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969660,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"46ddfa49f4b6f75cb383b7bfe442970b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Attempting to finish experiment","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.651102,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969660,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"613321e0-72d6-42ab-a459-3e9732ce6a3d","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"c5466404-8e53-4509-a67d-7666e645200b","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b1c71b0-0f69-4064-97c6-cdc649873b18': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6b1c71b0-0f69-4064-97c6-cdc649873b18","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"00b1c3a8-4a6d-4c31-bfe8-268f0e6e50bd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.226459} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8904244-5b21-488e-beba-901674081dac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.226695} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9a20c41401f646509df27b2980b628c4","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9a20c41401f646509df27b2980b628c4","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"9f66a9a0f75eb060248a7e12042c5542","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"}}},"level":"info","message":"received a callback","requestID":"9a20c41401f646509df27b2980b628c4"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9f66a9a0f75eb060248a7e12042c5542","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"}}},"level":"info","message":"received a callback","requestID":"9f66a9a0f75eb060248a7e12042c5542"} device-1 | {"data":{"peerconnection":"6b1c71b0-0f69-4064-97c6-cdc649873b18","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18 204 55ms","method":"DELETE","requestID":"3f91bf40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":55,"status":204,"url":"/peerconnections/6b1c71b0-0f69-4064-97c6-cdc649873b18"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"},"level":"info","message":"Successfully finished experiment","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3fa01720-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5466404-8e53-4509-a67d-7666e645200b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"879607d4-a82e-489d-a67c-8d3526da6b0f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.3100295} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.292845,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3fa01720-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3fa01720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3fa01720-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/c5466404-8e53-4509-a67d-7666e645200b/signaling 200 7ms","method":"POST","requestID":"3fa01720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/c5466404-8e53-4509-a67d-7666e645200b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"3fa176b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88174ecf-90bb-4c2a-8fea-1156ffe8a13e': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F88174ecf-90bb-4c2a-8fea-1156ffe8a13e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"10a63949-d344-4c31-8078-70d2c25ee2f2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.3163145} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f1577736-4bd9-4cac-9695-2b41307beb00","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.3166022} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"46ddfa49f4b6f75cb383b7bfe442970b","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F613321e0-72d6-42ab-a459-3e9732ce6a3d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ca3dd00d-4d28-47c7-90fb-c9612e4d3e40","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.3195853} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.952079,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3fa176b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"3fa176b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"3fa176b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling 200 8ms","method":"POST","requestID":"3fa176b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.248","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46ddfa49f4b6f75cb383b7bfe442970b"} experiment-1 | {"level":"info","message":"DELETE /experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e 204 246ms","method":"DELETE","requestID":"46ddfa49f4b6f75cb383b7bfe442970b","responseTime":246,"status":204,"url":"/experiments/88174ecf-90bb-4c2a-8fea-1156ffe8a13e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2365","request_time":"2.833","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"35ff82ab4d83e1089b708b43584f0ee2"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2363","request_time":"2.840","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"bf83bf1171c0a1c4aa9db41605cfd720"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 222ms","method":"POST","requestID":"9a20c41401f646509df27b2980b628c4","responseTime":222,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.225","http_referrer":"","http_user_agent":"node-fetch","requestID":"9a20c41401f646509df27b2980b628c4"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.225","http_referrer":"","http_user_agent":"node-fetch","requestID":"9f66a9a0f75eb060248a7e12042c5542"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 222ms","method":"POST","requestID":"9f66a9a0f75eb060248a7e12042c5542","responseTime":222,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg","level":"info","message":"auth send jwt","requestID":"e379ee5d269c5e94ea0e46147783c4fa"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":4,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c5466404-8e53-4509-a67d-7666e645200b' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"e379ee5d269c5e94ea0e46147783c4fa"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.745691,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"e379ee5d269c5e94ea0e46147783c4fa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969660,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/613321e0-72d6-42ab-a459-3e9732ce6a3d' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"65e3efec-b6aa-4150-b73b-709c7a2f319d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.4972916} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b300ac87-80b0-47ac-9be3-aea7cb2ed5ac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.5027428} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"2ca3448d-9072-4814-b58d-30be77b8e154","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.5127943} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bf6166f-8304-4926-9063-35308bff6970","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.512892} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":12,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"009fbc3b-1a3d-499e-8d13-785bdd50904f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.517405} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"e379ee5d269c5e94ea0e46147783c4fa"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.070","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e379ee5d269c5e94ea0e46147783c4fa"} device-1 | {"level":"info","message":"POST /devices? 201 63ms","method":"POST","requestID":"e379ee5d269c5e94ea0e46147783c4fa","responseTime":63,"status":201,"url":"/devices?"} device-1 | {"level":"info","message":"postDevices called","requestID":"3913937ae65e2f1fa11f71ff1c3ff667"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg","level":"info","message":"auth send jwt","requestID":"3913937ae65e2f1fa11f71ff1c3ff667"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.805875,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3913937ae65e2f1fa11f71ff1c3ff667","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969660,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MH0.DgEkFqX9DZdHihubrlJCAdOYhm1d3--IyyMeetErHMg"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8892501f-4ca9-4df7-9067-636dbd251982","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.5665143} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e80dfcf6-255d-4842-a259-961b7fd3093e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.595394} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"9cbe444a-3cc0-4d6c-97fd-5daf00a5d8ca","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.6063316} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5839243d-2355-470b-b327-b61a18887a8e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.6065814} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"97f91071-2562-45bc-854c-44841893d20a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969660.610811} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"3913937ae65e2f1fa11f71ff1c3ff667"} gateway-1 | {"time_local":"14/Mar/2025:16:27:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3913937ae65e2f1fa11f71ff1c3ff667"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"3913937ae65e2f1fa11f71ff1c3ff667","responseTime":89,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"2b318aac4979dbae51513fc0fffce94d"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"5d76726b89b0605cafc70dfb6cddeaa3"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"2b318aac4979dbae51513fc0fffce94d"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called","requestID":"5d76726b89b0605cafc70dfb6cddeaa3"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.640245,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2b318aac4979dbae51513fc0fffce94d","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.818848,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5d76726b89b0605cafc70dfb6cddeaa3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"46ffc7d0-f4fb-4e93-bf5a-189491661a0b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.5124996} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"5e1d918c-dd35-4b3f-8adb-6f7bc5b786e2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.5130632} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25af1575-af2a-44d6-aa42-ad2d5eb789b4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.5165405} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1eaeec41-380a-4b65-a885-5e6904697fc9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.51771} authorization-1 | {"level":"info","message":"POST /relations/update 200 2ms","method":"POST","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":2,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"a7e95add-1c2a-49ff-86b0-3253e04a3e04","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.5204294} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"5d76726b89b0605cafc70dfb6cddeaa3"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"5d76726b89b0605cafc70dfb6cddeaa3"} device-1 | {"level":"info","message":"PATCH /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f 200 42ms","method":"PATCH","requestID":"5d76726b89b0605cafc70dfb6cddeaa3","responseTime":42,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"08ef8336253da758a474afed4d3308b1"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"08ef8336253da758a474afed4d3308b1","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"08ef8336253da758a474afed4d3308b1"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"1eeb477f-d2da-4f20-a1dd-3c8bf55c65db","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.552879} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":27,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.895033,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded","requestID":"2b318aac4979dbae51513fc0fffce94d"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"08ef8336253da758a474afed4d3308b1","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.081","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"2b318aac4979dbae51513fc0fffce94d"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"08ef8336253da758a474afed4d3308b1","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"PATCH /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7 200 77ms","method":"PATCH","requestID":"2b318aac4979dbae51513fc0fffce94d","responseTime":77,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"84c22dc11842b7086b001bb234cdca5e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"84c22dc11842b7086b001bb234cdca5e","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"84c22dc11842b7086b001bb234cdca5e"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.695494,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"84c22dc11842b7086b001bb234cdca5e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"84c22dc11842b7086b001bb234cdca5e","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"08ef8336253da758a474afed4d3308b1"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.043","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"08ef8336253da758a474afed4d3308b1"} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/websocket 200 39ms","method":"POST","requestID":"08ef8336253da758a474afed4d3308b1","responseTime":39,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"84c22dc11842b7086b001bb234cdca5e"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.019","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"84c22dc11842b7086b001bb234cdca5e"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/websocket 200 16ms","method":"POST","requestID":"84c22dc11842b7086b001bb234cdca5e","responseTime":16,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"1cda1d596645c56b4c1c2fdec454aba8"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1cda1d596645c56b4c1c2fdec454aba8","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"1cda1d596645c56b4c1c2fdec454aba8"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699936,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"1cda1d596645c56b4c1c2fdec454aba8","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"1cda1d596645c56b4c1c2fdec454aba8","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"a71b19ae-6ad5-476e-a34d-2f26cf502d58","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.6506896} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"1cda1d596645c56b4c1c2fdec454aba8","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"1cda1d596645c56b4c1c2fdec454aba8"} device-1 | {"level":"info","message":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? 200 33ms","method":"GET","requestID":"1cda1d596645c56b4c1c2fdec454aba8","responseTime":33,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.036","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1cda1d596645c56b4c1c2fdec454aba8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70521,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"1539a4ca-5005-4440-a382-f63b157b5e20","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.6641233} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61"} device-1 | {"level":"info","message":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? 200 10ms","method":"GET","requestID":"07e457fdfdc151a1cbf4f27bfeeb3f61","responseTime":10,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"15a7cd7a4b266b7b05fc99b488f5673b","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.653537,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"15a7cd7a4b266b7b05fc99b488f5673b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"15a7cd7a4b266b7b05fc99b488f5673b","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to run experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to book experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully booked experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.890171,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","method":"POST","requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":25,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678968,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"6ac2942f-770a-4cad-b35a-b5af6a8f0856","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.7517796} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"f9018667-39c6-4079-9991-187603b47b99","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.7529466} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? 200 36ms","method":"GET","requestID":"407827a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? 200 35ms","method":"GET","requestID":"40784eb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Setting up experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully locked booking for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to update booking for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully updated booking for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully set up experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"408ac540-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:37428","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.798977,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully running experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.172126,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","method":"POST","requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c6bee853-6748-4198-a046-94ec318cba4e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.8506234} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.206459,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"408ac540-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"408ac540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"408ac540-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"2df85d33-6620-40d9-85d9-13d1629edeba","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.854107} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling 200 10ms","method":"POST","requestID":"408ac540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":10,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"ea4622a6-9e92-46c5-8e43-e2c863f32fe0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.8547733} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"408cc110-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? 200 18ms","method":"GET","requestID":"408a7720-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8e1522b8-66a4-4161-bf9f-bda3c4b0f178#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8e1522b8-66a4-4161-bf9f-bda3c4b0f178","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3f650577-aba0-4931-9598-410c541852ef","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.8598595} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5402c519-a008-4b26-8dd3-702662222dac","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.8600702} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? 200 18ms","method":"GET","requestID":"408a9e30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7?"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"15a7cd7a4b266b7b05fc99b488f5673b","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"142c56f8-a920-4ef5-9e5f-01d49eaee1c9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.862426} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.69119,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"408dab70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"408cc110-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"408cc110-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"408cc110-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling 200 34ms","method":"POST","requestID":"408cc110-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"774260e9-cad0-4178-8f77-03d418739db5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.8913605} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.519457,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"408dab70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"408dab70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.224","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 197ms","method":"POST","requestID":"15a7cd7a4b266b7b05fc99b488f5673b","responseTime":197,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"408dab70-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling 200 32ms","method":"POST","requestID":"408dab70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":32,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4092db90-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"377ce161cac5b028a820e1411ab68612"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"377ce161cac5b028a820e1411ab68612","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"377ce161cac5b028a820e1411ab68612"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.60417,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"377ce161cac5b028a820e1411ab68612","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"377ce161cac5b028a820e1411ab68612","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4d6941d2-e33f-4841-9b49-aff9775878be","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.9013512} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.278256,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4092db90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"4092db90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.512759475Z"}]},"request_id":"9ad03035-9d2e-4ea9-9e3d-cddc30cf9c25","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.9050097} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"377ce161cac5b028a820e1411ab68612","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4092db90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling 200 9ms","method":"POST","requestID":"4092db90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Building connection plan","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} 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":"28c758c4-baa2-4ca1-8719-787299494292"},{"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":"71414d57-1c53-49a6-a2a7-e8d46c5b5729"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d0d438e3-ac02-444a-bbf3-65aad7dd29e7"}]},"level":"info","message":"Built pairwise service configurations","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} 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/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"},{"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/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"377ce161cac5b028a820e1411ab68612"} device-1 | {"level":"info","message":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? 200 10ms","method":"GET","requestID":"377ce161cac5b028a820e1411ab68612","responseTime":10,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"377ce161cac5b028a820e1411ab68612"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g","level":"info","message":"auth send jwt","requestID":"2594db194a7116ef694e756538640a3a"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2594db194a7116ef694e756538640a3a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.769589,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"2594db194a7116ef694e756538640a3a"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.859005,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"2594db194a7116ef694e756538640a3a","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969661,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2MX0.qZrMHPX9dCO_c13VSilHJ8-Opa0efL-6KnVAXidoa5g"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"2594db194a7116ef694e756538640a3a","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:40.606293283Z"}]},"request_id":"20f58827-0108-43b9-ba26-9fd84948eff1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.9435318} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"2594db194a7116ef694e756538640a3a","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"c05f5c86-11d7-45b8-8b1c-87ad6ece95cc","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.9444506} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac2736a3-1795-4505-9d9c-60f5a3fb7ae7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969661.9447026} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"2594db194a7116ef694e756538640a3a"} gateway-1 | {"time_local":"14/Mar/2025:16:27:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2594db194a7116ef694e756538640a3a"} device-1 | {"level":"info","message":"GET /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7? 200 10ms","method":"GET","requestID":"2594db194a7116ef694e756538640a3a","responseTime":10,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd'","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd'","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 46ms","method":"POST","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544","responseTime":46,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"4094b050-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"15a7cd7a4b266b7b05fc99b488f5673b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"40a32f40-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:42Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d16ed1b-ad59-488d-9b26-45513920f3af","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969662.0087864} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.531471,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"40a32f40-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"40a32f40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"40a32f40-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling 200 8ms","method":"POST","requestID":"40a32f40-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"40a85f60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:42Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"625f9e0d-1ec7-4edb-ae56-a85ebf96799d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969662.0417955} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.259064,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"40a85f60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"40a85f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"40a85f60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling 200 9ms","method":"POST","requestID":"40a85f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling"} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-local-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new have-remote-offer","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged new new stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"651f89d589e04a214882ee7e57a1735e","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"651f89d589e04a214882ee7e57a1735e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"},{"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/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"}}},"level":"info","message":"received a callback","requestID":"651f89d589e04a214882ee7e57a1735e"} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting checking stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 4ms","method":"POST","requestID":"651f89d589e04a214882ee7e57a1735e","responseTime":4,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"651f89d589e04a214882ee7e57a1735e"} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connecting completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged connected completed stable","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"connecting","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"f0eb2c30f5be2dfe1d95cd0a31a7c7a3","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f0eb2c30f5be2dfe1d95cd0a31a7c7a3","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/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"},{"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/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"}}},"level":"info","message":"received a callback","requestID":"f0eb2c30f5be2dfe1d95cd0a31a7c7a3"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"41df0aa0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F956d381a-1fc7-446a-aea2-d21e512031dd","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf697ba3-1df7-4199-ab4d-3fe649d5e230","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.0829685} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.160591,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"41df0aa0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd","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","method":"POST","requestID":"41df0aa0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"41df0aa0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd 200 12ms","method":"GET","requestID":"41df0aa0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"f0eb2c30f5be2dfe1d95cd0a31a7c7a3","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"f0eb2c30f5be2dfe1d95cd0a31a7c7a3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41e32950-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cfc2442f-724e-418f-9e9e-f1ffc8c7c5fe","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.1058955} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.970111,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"41e32950-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"41e32950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41e32950-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling 200 8ms","method":"POST","requestID":"41e32950-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"41e4d700-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17ea01c2-ac80-4892-8ac1-c0d445cc0a4f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.116287} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.226768,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"41e4d700-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"41e4d700-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"41e4d700-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling 200 7ms","method":"POST","requestID":"41e4d700-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM","level":"info","message":"auth send jwt","requestID":"5a6f318c8935562dd87d9324052dd300"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5a6f318c8935562dd87d9324052dd300","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","requestID":"5a6f318c8935562dd87d9324052dd300"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.921083,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"5a6f318c8935562dd87d9324052dd300","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969664,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"5a6f318c8935562dd87d9324052dd300","responseTime":4,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","requestID":"5a6f318c8935562dd87d9324052dd300"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178 HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5a6f318c8935562dd87d9324052dd300"} experiment-1 | {"level":"info","message":"GET /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178 200 34ms","method":"GET","requestID":"5a6f318c8935562dd87d9324052dd300","responseTime":34,"status":200,"url":"/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM","level":"info","message":"auth send jwt","requestID":"c05267901a1d14435b45a882a2c49444"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c05267901a1d14435b45a882a2c49444","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","requestID":"c05267901a1d14435b45a882a2c49444"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.778272,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c05267901a1d14435b45a882a2c49444","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969664,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c05267901a1d14435b45a882a2c49444","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Attempting to finish experiment","requestID":"c05267901a1d14435b45a882a2c49444"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.820009,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969664,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","deviceName":"Python Device 1","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"device":"73c8e86f-3eee-45b4-9642-0abc4fbcedd7","deviceName":"Python Device 2","labels":{"job":"remote_device"},"level":"info","message":"connectionstatechanged closed closed closed","origin":{"funcName":"connectionstatechanged","lineno":50,"name":"crosslab.soa_client.connection_webrtc","pathname":"/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/clients/soa/python/src/crosslab/soa_client/connection_webrtc.py","processName":"MainProcess","threadName":"MainThread"}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F956d381a-1fc7-446a-aea2-d21e512031dd': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F956d381a-1fc7-446a-aea2-d21e512031dd","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"6f3b9ce9-e354-4450-acff-13b60c2aefae","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.248375} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"feb48843-ff44-4942-b6bd-e1382c415df9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.2485924} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c59871675364ba89bd61f114096b9ccb","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"c59871675364ba89bd61f114096b9ccb","responseTime":0,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 6ms","method":"POST","requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"15bb9e9584713b575136fc4e450e0bda","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"15bb9e9584713b575136fc4e450e0bda","responseTime":0,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"}}},"level":"info","message":"received a callback","requestID":"c59871675364ba89bd61f114096b9ccb"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7"},{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"}}},"level":"info","message":"received a callback","requestID":"15bb9e9584713b575136fc4e450e0bda"} device-1 | {"data":{"peerconnection":"956d381a-1fc7-446a-aea2-d21e512031dd","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd 204 78ms","method":"DELETE","requestID":"41f3f230-00f1-11f0-9a2b-c98a3cf1c544","responseTime":78,"status":204,"url":"/peerconnections/956d381a-1fc7-446a-aea2-d21e512031dd"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"},"level":"info","message":"Successfully finished experiment","requestID":"c05267901a1d14435b45a882a2c49444"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4201fbf0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F73c8e86f-3eee-45b4-9642-0abc4fbcedd7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"14d052e6-75c0-42a0-8bbc-497022fb2325","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.3078003} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.363205,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4201fbf0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"4201fbf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4201fbf0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling 200 8ms","method":"POST","requestID":"4201fbf0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"42072c10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8e1522b8-66a4-4161-bf9f-bda3c4b0f178': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8e1522b8-66a4-4161-bf9f-bda3c4b0f178","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"a72ef185-2e02-4980-a7a4-694087502284","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.3399367} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2674ed5c-f10e-4fcf-b3f6-57b7e761197e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.340293} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"level":"info","message":"POST /relations/update 200 40ms","method":"POST","requestID":"c05267901a1d14435b45a882a2c49444","responseTime":40,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"457647ca-0ca4-4de5-afaa-ec29af4be9f6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.3424432} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.601701,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"42072c10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"42072c10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"42072c10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling 200 9ms","method":"POST","requestID":"42072c10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178","requestID":"c05267901a1d14435b45a882a2c49444"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.240","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c05267901a1d14435b45a882a2c49444"} experiment-1 | {"level":"info","message":"DELETE /experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178 204 238ms","method":"DELETE","requestID":"c05267901a1d14435b45a882a2c49444","responseTime":238,"status":204,"url":"/experiments/8e1522b8-66a4-4161-bf9f-bda3c4b0f178"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2365","request_time":"2.871","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"9b24c45e8f26eabeb524a9db4c754ba4"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2363","request_time":"2.838","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.11.13","requestID":"d7b92ff0ac1cf1f482fd672753b2f336"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"c59871675364ba89bd61f114096b9ccb","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch","requestID":"c59871675364ba89bd61f114096b9ccb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 191ms","method":"POST","requestID":"15bb9e9584713b575136fc4e450e0bda","responseTime":191,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"15bb9e9584713b575136fc4e450e0bda"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM","level":"info","message":"auth send jwt","requestID":"fb289026de8272a3568f0c142695b7ef"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":4,"status":200,"url":"/auth"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/73c8e86f-3eee-45b4-9642-0abc4fbcedd7' closed"} device-1 | {"level":"info","message":"postDevices called","requestID":"fb289026de8272a3568f0c142695b7ef"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.937606,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"fb289026de8272a3568f0c142695b7ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969664,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b3174b4e-39cf-4ecd-85b7-a21ba8f06d5f' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9dfd914a-fcb8-4dc4-9032-ba130ab7ab9a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.4881544} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3c3147d2-dc9b-4b30-acf0-dd0f9efbe569","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.4931018} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"7ad176c9-eea3-4121-be37-d68d48ac3448","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.5032272} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2954c5f5-5e20-482f-a8c5-aff5f2e83e4a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.5033772} authorization-1 | {"level":"info","message":"POST /relations/update 200 37ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":37,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.503194921Z"}]},"request_id":"9fc52f3c-cdbc-480f-8d1b-474f8cb957f4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.5321772} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"fb289026de8272a3568f0c142695b7ef"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"fb289026de8272a3568f0c142695b7ef","responseTime":88,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.094","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fb289026de8272a3568f0c142695b7ef"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM","level":"info","message":"auth send jwt","requestID":"78f067762cd7dc4690be05ec6fb6d767"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"78f067762cd7dc4690be05ec6fb6d767"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.604209,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:44Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"78f067762cd7dc4690be05ec6fb6d767","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969664,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2NH0.qoZA6_rMUdgZ0wnAz4rWXJunBjo_AiLNqwxOSEpK7eM"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"04aa120c-2a77-432a-8575-7153bfc8eb40","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.581005} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37aae676-c3d4-4e4c-9575-3920b889eea8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.5858316} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":4,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"7c3834e9-65b7-477c-97f6-c2f7e59e110c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.5975068} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"da686e0d-8fbc-4b52-99a4-b24f361aff6d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.597647} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":14,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.597469621Z"}]},"request_id":"d0829ee0-c959-47ff-927b-7899a1b910e4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969664.6265085} authorization-1 | {"level":"info","message":"POST /relations/query 200 27ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":27,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"78f067762cd7dc4690be05ec6fb6d767"} device-1 | {"level":"info","message":"POST /devices? 201 89ms","method":"POST","requestID":"78f067762cd7dc4690be05ec6fb6d767","responseTime":89,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:44 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.093","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78f067762cd7dc4690be05ec6fb6d767"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"2403f5dbf1ebc7c9d9e6e5bffbec46a1","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"2403f5dbf1ebc7c9d9e6e5bffbec46a1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"OPTIONS /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/websocket 200 1ms","method":"OPTIONS","requestID":"2403f5dbf1ebc7c9d9e6e5bffbec46a1","responseTime":1,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/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":"2403f5dbf1ebc7c9d9e6e5bffbec46a1"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"eb1e1058c77f6ef4432c08051be04d25","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eb1e1058c77f6ef4432c08051be04d25","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/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":"eb1e1058c77f6ef4432c08051be04d25"} device-1 | {"level":"info","message":"OPTIONS /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/websocket 200 0ms","method":"OPTIONS","requestID":"eb1e1058c77f6ef4432c08051be04d25","responseTime":0,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE","level":"info","message":"auth send jwt","requestID":"cc288f564a888460d4c2758212950508"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"cc288f564a888460d4c2758212950508","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"cc288f564a888460d4c2758212950508"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE","level":"info","message":"auth send jwt","requestID":"9261b99f1e9211703981163ec06bf845"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"9261b99f1e9211703981163ec06bf845","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"9261b99f1e9211703981163ec06bf845"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.799252,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"cc288f564a888460d4c2758212950508","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"cc288f564a888460d4c2758212950508","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.068465,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"9261b99f1e9211703981163ec06bf845","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"9261b99f1e9211703981163ec06bf845","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"9261b99f1e9211703981163ec06bf845"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/websocket 200 14ms","method":"POST","requestID":"9261b99f1e9211703981163ec06bf845","responseTime":14,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.024","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"9261b99f1e9211703981163ec06bf845"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"cc288f564a888460d4c2758212950508"} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/websocket 200 21ms","method":"POST","requestID":"cc288f564a888460d4c2758212950508","responseTime":21,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.032","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"cc288f564a888460d4c2758212950508"} device-1 | {"level":"info","message":"device 'http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE","level":"info","message":"auth send jwt","requestID":"21e0f4e238cb9167d11437d8276669ef"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"21e0f4e238cb9167d11437d8276669ef","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"21e0f4e238cb9167d11437d8276669ef"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.674282,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"21e0f4e238cb9167d11437d8276669ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"21e0f4e238cb9167d11437d8276669ef","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.503194921Z"}]},"request_id":"0dfc4da7-690a-4f18-bb4f-27650359741d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969666.9412122} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"21e0f4e238cb9167d11437d8276669ef","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"21e0f4e238cb9167d11437d8276669ef"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"21e0f4e238cb9167d11437d8276669ef"} device-1 | {"level":"info","message":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? 200 9ms","method":"GET","requestID":"21e0f4e238cb9167d11437d8276669ef","responseTime":9,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE","level":"info","message":"auth send jwt","requestID":"c2f3daf4a535884d288f08242fbdbbcd"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c2f3daf4a535884d288f08242fbdbbcd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c2f3daf4a535884d288f08242fbdbbcd"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.719013,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c2f3daf4a535884d288f08242fbdbbcd","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"c2f3daf4a535884d288f08242fbdbbcd","responseTime":2,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:27:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2f3daf4a535884d288f08242fbdbbcd"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c2f3daf4a535884d288f08242fbdbbcd"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.597469621Z"}]},"request_id":"a9552c66-6321-4aaa-bb1e-f52583c4c876","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969666.956896} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"c2f3daf4a535884d288f08242fbdbbcd","responseTime":5,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? 200 11ms","method":"GET","requestID":"c2f3daf4a535884d288f08242fbdbbcd","responseTime":11,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE","level":"info","message":"auth send jwt","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"62affe4b6149942d9bd4b387ae98d6ec","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.677152,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"62affe4b6149942d9bd4b387ae98d6ec","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"62affe4b6149942d9bd4b387ae98d6ec","responseTime":2,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to run experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to book experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully booked experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":21.015665,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.327075,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","method":"POST","requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":24,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.503194921Z"}]},"request_id":"34fb7b3c-0f60-47d5-acef-97029cb2dea0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.0314183} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.597469621Z"}]},"request_id":"4ab28297-3e84-4411-af4c-4e1650f64732","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.0321326} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? 200 33ms","method":"GET","requestID":"439dd1a0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? 200 33ms","method":"GET","requestID":"439df8b0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Setting up experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully locked booking for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to update booking for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully updated booking for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully set up experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43affa10-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50376","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.924342,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully running experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.801507,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.503194921Z"}]},"request_id":"3349b4a0-c15e-4632-b58f-32b513bb0f75","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1285563} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.597469621Z"}]},"request_id":"a53b0316-2173-402e-82eb-6e5000fdf5f7","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1292462} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1c09eb3-00f4-4a18-a292-fa003fe48145","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.132519} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.10373,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} device-1 | {"level":"info","message":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? 200 38ms","method":"GET","requestID":"43ac0270-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43affa10-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? 200 38ms","method":"GET","requestID":"43ac2980-00f1-11f0-9a2b-c98a3cf1c544","responseTime":38,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a?"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","method":"POST","requestID":"43affa10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":11,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43b24400-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43affa10-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling 200 17ms","method":"POST","requestID":"43affa10-00f1-11f0-9a2b-c98a3cf1c544","responseTime":17,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b9b459ef-9b45-42e0-82db-cca70834f497","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1399724} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd660df32-80e3-4e8d-aeba-ced4363efe42#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd660df32-80e3-4e8d-aeba-ced4363efe42","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"4f8b41df-0b59-4dce-92a1-6c50722e6877","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1409085} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43b30750-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 16ms","method":"POST","requestID":"62affe4b6149942d9bd4b387ae98d6ec","responseTime":16,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"962aea9d-6e80-4871-b598-39e34a1b03b0","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1418316} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.692553,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43b24400-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"43b24400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbebfb6f-2812-445f-b4d0-76c452203c77","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1696534} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":27.532398,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43b24400-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling 200 36ms","method":"POST","requestID":"43b24400-00f1-11f0-9a2b-c98a3cf1c544","responseTime":36,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43b30750-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"43b30750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.203","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"level":"info","message":"POST /experiments? 201 199ms","method":"POST","requestID":"62affe4b6149942d9bd4b387ae98d6ec","responseTime":199,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43b30750-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling 200 35ms","method":"POST","requestID":"43b30750-00f1-11f0-9a2b-c98a3cf1c544","responseTime":35,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43b85e80-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"bbd7425cb51dc5f46c25d61cdb614537"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bbd7425cb51dc5f46c25d61cdb614537","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"bbd7425cb51dc5f46c25d61cdb614537"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2e8896b5-d612-4ced-bfcb-34fee3b6d2a4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.181526} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.87972,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.327806,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"bbd7425cb51dc5f46c25d61cdb614537","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"bbd7425cb51dc5f46c25d61cdb614537","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43b85e80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"43b85e80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43b85e80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.503194921Z"}]},"request_id":"c750f248-f1f7-4bb8-82ea-c1604378f6aa","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.1874368} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling 200 12ms","method":"POST","requestID":"43b85e80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":12,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"bbd7425cb51dc5f46c25d61cdb614537","responseTime":4,"status":200,"url":"/relations/query"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Building connection plan","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"0cf8b43e-531d-4516-aa8f-80530aea9633"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"3d541e38-b059-45a3-b705-46e172ce90a2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"6dcec75d-faca-4e63-bba0-0fd4d1f1d2d4"}]},"level":"info","message":"Built pairwise service configurations","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"bbd7425cb51dc5f46c25d61cdb614537"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bbd7425cb51dc5f46c25d61cdb614537"} device-1 | {"level":"info","message":"GET /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3? 200 38ms","method":"GET","requestID":"bbd7425cb51dc5f46c25d61cdb614537","responseTime":38,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3?"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.732618,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969666,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2Nn0.aW1sg_WIWkDfLaBXNeWCFY1Gv8eMvWblKg4B28UXhvE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":27,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"ee92c22eef562217a2189a8bae8369d7"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ee92c22eef562217a2189a8bae8369d7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"ee92c22eef562217a2189a8bae8369d7"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.63057,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"ee92c22eef562217a2189a8bae8369d7","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"ee92c22eef562217a2189a8bae8369d7","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"30f61a61-a100-482f-86b8-cce9f6cb83bf","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.2276158} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b8a8b72-f288-4a9b-9991-6d88d697bf20","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.2278135} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:44.597469621Z"}]},"request_id":"587ce913-102b-4d3e-bb4d-550b616dbd1d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.228205} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"ee92c22eef562217a2189a8bae8369d7","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"ee92c22eef562217a2189a8bae8369d7"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee92c22eef562217a2189a8bae8369d7"} device-1 | {"level":"info","message":"GET /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a? 200 12ms","method":"GET","requestID":"ee92c22eef562217a2189a8bae8369d7","responseTime":12,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a?"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9'","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9'","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 51ms","method":"POST","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":51,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false","requestID":"43baa870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"62affe4b6149942d9bd4b387ae98d6ec"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43c97580-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3b2f0822-6673-4347-8644-8426379f2cc3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.3161216} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.293471,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43c97580-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"43c97580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43c97580-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling 200 31ms","method":"POST","requestID":"43c97580-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43ce7e90-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"97d4e5d6-4398-442c-8a43-93337c65f3ec","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.325047} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.159469,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43ce7e90-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"43ce7e90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43ce7e90-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling 200 8ms","method":"POST","requestID":"43ce7e90-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling"} device-1 | {"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 4382647610550041256 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:HZ4P\r\na=ice-pwd:sU1nHlEXRsdOSA7dhLx6JbBK\r\na=ice-options:trickle\r\na=fingerprint:sha-256 B6:55:4B:89:BD:C0:1F:76:1C:9C:E8:62:A1:2F:CD:98:E1:46:35:D7:8F:5F:FD:02:F0:1B:CB:EC:33:DB:18:44\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 3061507747248403020 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:8ONW\r\na=ice-pwd:6ovqVJENg8bU1Epf7ZjRbZQl\r\na=ice-options:trickle\r\na=fingerprint:sha-256 4C:C9:9D:75:7C:A0:54:E1:1B:2D:61:03:F2:44:63:A7:3F:FA:4D:C4:40:1A:0A:26:32:71:B5:79:16:12:34:20\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:3011497917 1 udp 2113937151 835bf2af-d7dc-4188-aebb-a598441ce9f6.local 54276 typ host generation 0 ufrag 8ONW network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a'"} device-1 | {"content":{"candidate":"candidate:4184666851 1 udp 2113937151 ec9da59c-a993-44a2-8e93-0124e6c5c37b.local 55114 typ host generation 0 ufrag HZ4P network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"98f8c21f6c864bb2bbbb39185ccde67c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} device-1 | {"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"98f8c21f6c864bb2bbbb39185ccde67c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"}}},"level":"info","message":"received a callback","requestID":"98f8c21f6c864bb2bbbb39185ccde67c"} device-1 | {"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"98f8c21f6c864bb2bbbb39185ccde67c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"98f8c21f6c864bb2bbbb39185ccde67c","responseTime":6,"status":200,"url":"/callbacks/experiment"} device-1 | {"device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"bcd8408dd1d1dd174dfda1c10cd6876b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bcd8408dd1d1dd174dfda1c10cd6876b","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/b73ac395-aacb-466c-be8d-bc8108b6a71a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"}}},"level":"info","message":"received a callback","requestID":"bcd8408dd1d1dd174dfda1c10cd6876b"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"43eb5560-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3a03a804-fd92-4ff7-85a1-51593a6299d9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60a4c608-fd13-4a3a-b7ff-b5f074ba6131","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.5136614} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.229659,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43eb5560-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"43eb5560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"43eb5560-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9 200 6ms","method":"GET","requestID":"43eb5560-00f1-11f0-9a2b-c98a3cf1c544","responseTime":6,"status":200,"url":"/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"0c8f91d30236af61b2156a46f78fb9ef"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0c8f91d30236af61b2156a46f78fb9ef","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","requestID":"0c8f91d30236af61b2156a46f78fb9ef"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":25.097446,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0c8f91d30236af61b2156a46f78fb9ef","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","method":"POST","requestID":"0c8f91d30236af61b2156a46f78fb9ef","responseTime":27,"status":200,"url":"/authorize"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 54ms","method":"POST","requestID":"bcd8408dd1d1dd174dfda1c10cd6876b","responseTime":54,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.080","http_referrer":"","http_user_agent":"node-fetch","requestID":"bcd8408dd1d1dd174dfda1c10cd6876b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43f2cf70-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","requestID":"0c8f91d30236af61b2156a46f78fb9ef"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c8f91d30236af61b2156a46f78fb9ef"} experiment-1 | {"level":"info","message":"GET /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42 200 39ms","method":"GET","requestID":"0c8f91d30236af61b2156a46f78fb9ef","responseTime":39,"status":200,"url":"/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"057ab192-391d-4ded-8444-daa31f4312dd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.5644944} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.264719,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43f2cf70-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"43f2cf70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43f2cf70-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"03d699bc184731e0677b8aee31f63369"} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling 200 9ms","method":"POST","requestID":"43f2cf70-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"03d699bc184731e0677b8aee31f63369","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"43f47d20-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","requestID":"03d699bc184731e0677b8aee31f63369"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.621534,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"03d699bc184731e0677b8aee31f63369","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"03d699bc184731e0677b8aee31f63369","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"93b9d167-68e3-4371-84d0-3f5551de3719","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.5744543} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":1.994284,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43f47d20-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"43f47d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"43f47d20-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling 200 33ms","method":"POST","requestID":"43f47d20-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Attempting to finish experiment","requestID":"03d699bc184731e0677b8aee31f63369"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.737902,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","device":"b73ac395-aacb-466c-be8d-bc8108b6a71a","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9","device":"44dc182b-2459-4bf8-adb2-19fce183e8a3","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3a03a804-fd92-4ff7-85a1-51593a6299d9': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3a03a804-fd92-4ff7-85a1-51593a6299d9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"e29ab0d4-b6bb-4686-b30c-8ca687dd7081","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.619815} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d5dbe08047023ea2f2650e14595abd8c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"d5dbe08047023ea2f2650e14595abd8c","responseTime":0,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"3bd83540af9d4291fd5900d7c3aeb0f2","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3bd83540af9d4291fd5900d7c3aeb0f2","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9a6c2544-ef01-4afa-9651-951dd5ecfb6f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.6210022} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","method":"POST","requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/relations/update"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"}}},"level":"info","message":"received a callback","requestID":"d5dbe08047023ea2f2650e14595abd8c"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"}}},"level":"info","message":"received a callback","requestID":"3bd83540af9d4291fd5900d7c3aeb0f2"} device-1 | {"data":{"peerconnection":"3a03a804-fd92-4ff7-85a1-51593a6299d9","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9 204 56ms","method":"DELETE","requestID":"43f9fb60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":56,"status":204,"url":"/peerconnections/3a03a804-fd92-4ff7-85a1-51593a6299d9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"},"level":"info","message":"Successfully finished experiment","requestID":"03d699bc184731e0677b8aee31f63369"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4404a9c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb73ac395-aacb-466c-be8d-bc8108b6a71a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e5b70cd-1bf4-4650-a8ae-002c38d102a8","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.7014344} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.333308,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4404a9c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"4404a9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4404a9c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling 200 29ms","method":"POST","requestID":"4404a9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"44093da0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd660df32-80e3-4e8d-aeba-ced4363efe42': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd660df32-80e3-4e8d-aeba-ced4363efe42","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"bdfb58c8-2014-4991-af7c-8d4004a30d8e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.7082264} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e56d3192-f1eb-43ca-9f3f-b8eddd8944d1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.7083561} authorization-1 | {"level":"info","message":"POST /relations/update 200 35ms","method":"POST","requestID":"03d699bc184731e0677b8aee31f63369","responseTime":35,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F44dc182b-2459-4bf8-adb2-19fce183e8a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"771a95e6-3072-49bc-be58-40f1b5f86663","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.710521} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.326747,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"44093da0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"44093da0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"44093da0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling 200 8ms","method":"POST","requestID":"44093da0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42","requestID":"03d699bc184731e0677b8aee31f63369"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"03d699bc184731e0677b8aee31f63369"} experiment-1 | {"level":"info","message":"DELETE /experiments/d660df32-80e3-4e8d-aeba-ced4363efe42 204 237ms","method":"DELETE","requestID":"03d699bc184731e0677b8aee31f63369","responseTime":237,"status":204,"url":"/experiments/d660df32-80e3-4e8d-aeba-ced4363efe42"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 187ms","method":"POST","requestID":"d5dbe08047023ea2f2650e14595abd8c","responseTime":187,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.192","http_referrer":"","http_user_agent":"node-fetch","requestID":"d5dbe08047023ea2f2650e14595abd8c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"a4806d916bc065c4c3f1f513b510348c"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 189ms","method":"POST","requestID":"3bd83540af9d4291fd5900d7c3aeb0f2","responseTime":189,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch","requestID":"3bd83540af9d4291fd5900d7c3aeb0f2"} device-1 | {"level":"info","message":"postDevices called","requestID":"a4806d916bc065c4c3f1f513b510348c"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"0.930","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"84e18386678e627961583f61567f8c0b"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.878951,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"a4806d916bc065c4c3f1f513b510348c","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 30ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":30,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"0.932","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2d67bed6c928c6b8c00500520fa40725"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/44dc182b-2459-4bf8-adb2-19fce183e8a3' closed"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"32909b7b-644e-4bc9-acbb-0daa4d8fef4b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.860592} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"85bb0418-a0f8-4de4-92d4-fde80b7ce61a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.8645225} authorization-1 | {"level":"info","message":"POST /relations/update 200 27ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":27,"status":200,"url":"/relations/update"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/b73ac395-aacb-466c-be8d-bc8108b6a71a' closed"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"a2b0f19d-5dd6-41f7-832a-a4f82d5c5f73","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.8971093} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"79c31ecd-18d1-4f54-8252-eb16c879a9bd","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.8972478} authorization-1 | {"level":"info","message":"POST /relations/update 200 34ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":34,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.897083183Z"}]},"request_id":"89cecfe1-cf20-475d-9c1d-924b8ac25773","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.9002075} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":1,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"a4806d916bc065c4c3f1f513b510348c"} device-1 | {"level":"info","message":"POST /devices? 201 86ms","method":"POST","requestID":"a4806d916bc065c4c3f1f513b510348c","responseTime":86,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.092","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a4806d916bc065c4c3f1f513b510348c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU","level":"info","message":"auth send jwt","requestID":"599833a21b95be11ee2db893fb0473a3"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called","requestID":"599833a21b95be11ee2db893fb0473a3"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.658476,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:47Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"599833a21b95be11ee2db893fb0473a3","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969667,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY2N30.ecfB_O_DhjsGQTmAXVxv4ciGS3LQ61J4amN50BS-sBU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2e55922c-3f23-4e99-b7a2-af0d09cf8201","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.945702} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":2,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3da2885a-c184-4fbb-badd-1a9cb17c8448","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.9495184} authorization-1 | {"level":"info","message":"POST /relations/update 200 3ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":3,"status":200,"url":"/relations/update"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"cbc04dcd-5f2b-4630-8d16-fc8b8401a17a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.958648} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"534d43f2-697e-4795-80d2-4d2a061b5ed6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.9587991} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":10,"status":200,"url":"/relations/update"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"b8a754b4-751a-4df9-8abb-2d801def0e29","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969667.9859526} authorization-1 | {"level":"info","message":"POST /relations/query 200 26ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":26,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"postDevices succeeded","requestID":"599833a21b95be11ee2db893fb0473a3"} gateway-1 | {"time_local":"14/Mar/2025:16:27:47 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.085","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"599833a21b95be11ee2db893fb0473a3"} device-1 | {"level":"info","message":"POST /devices? 201 81ms","method":"POST","requestID":"599833a21b95be11ee2db893fb0473a3","responseTime":81,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"cfce2574a3fd5c626194437aaa611e83","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"cfce2574a3fd5c626194437aaa611e83","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/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":"cfce2574a3fd5c626194437aaa611e83"} device-1 | {"level":"info","message":"OPTIONS /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/websocket 200 1ms","method":"OPTIONS","requestID":"cfce2574a3fd5c626194437aaa611e83","responseTime":1,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c","level":"info","message":"auth send jwt","requestID":"f47d739a61202c65d5786e4b2ceee012"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f47d739a61202c65d5786e4b2ceee012","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"f47d739a61202c65d5786e4b2ceee012"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.182147,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f47d739a61202c65d5786e4b2ceee012","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"f47d739a61202c65d5786e4b2ceee012","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"f47d739a61202c65d5786e4b2ceee012"} gateway-1 | {"time_local":"14/Mar/2025:16:27:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f47d739a61202c65d5786e4b2ceee012"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/websocket 200 21ms","method":"POST","requestID":"f47d739a61202c65d5786e4b2ceee012","responseTime":21,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c","level":"info","message":"auth send jwt","requestID":"c790c8d065c2ca296424a3f1c110a9aa"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c790c8d065c2ca296424a3f1c110a9aa","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"c790c8d065c2ca296424a3f1c110a9aa"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.04839,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"c790c8d065c2ca296424a3f1c110a9aa","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"c790c8d065c2ca296424a3f1c110a9aa","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"f6cbcca0-b562-475b-8756-961a8b7aea1e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.25478} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"c790c8d065c2ca296424a3f1c110a9aa","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"c790c8d065c2ca296424a3f1c110a9aa"} device-1 | {"level":"info","message":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? 200 9ms","method":"GET","requestID":"c790c8d065c2ca296424a3f1c110a9aa","responseTime":9,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79?"} gateway-1 | {"time_local":"14/Mar/2025:16:27:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c790c8d065c2ca296424a3f1c110a9aa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c","level":"info","message":"auth send jwt","requestID":"0f619048d374df6f41823bb48dbd9a5e"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"0f619048d374df6f41823bb48dbd9a5e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments","requestID":"0f619048d374df6f41823bb48dbd9a5e"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.644155,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"0f619048d374df6f41823bb48dbd9a5e","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"0f619048d374df6f41823bb48dbd9a5e","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to run experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to book experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully booked experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.904749,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.455208,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffa62afc0-6756-46a9-95dd-e5d81cc063aa","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.897083183Z"}]},"request_id":"bdd2102e-b9ed-4c88-a596-79c1624c157a","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.2999606} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"56640137-c403-4e84-9d95-648761699f79","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.3007433} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa? 200 13ms","method":"GET","requestID":"4593ae30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? 200 13ms","method":"GET","requestID":"4593d540-00f1-11f0-9a2b-c98a3cf1c544","responseTime":13,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Setting up experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to lock booking for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully locked booking for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to instantiate devices for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"postDevicesByDeviceId called","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679771,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"eca0de3e-878f-470b-98ef-5eb32c741d61","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.34338} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8e7bb555-921b-422d-9558-ac3be2a0cd3e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.3435876} authorization-1 | {"level":"info","message":"POST /relations/update 200 9ms","method":"POST","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031' to 'http://localhost/callbacks/experiment'","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544"} authentication-1 | {"level":"info","message":"POST /token 201 40ms","method":"POST","requestID":"459caee0-00f1-11f0-a2e1-7bf7f074ac39","responseTime":40,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 74ms","method":"POST","requestID":"45981b00-00f1-11f0-9a2b-c98a3cf1c544","responseTime":74,"status":201,"url":"/devices/fa62afc0-6756-46a9-95dd-e5d81cc063aa?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully instantiated devices for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to update booking for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully updated booking for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully set up experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45b16f60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.892068,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully running experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:50386","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.738899,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"df4a6c41-1f5a-4133-b0c5-94b340227f7e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.490813} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"6199093a-276f-47ba-8eff-20281f67312d","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.4929602} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.384967,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45b16f60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"45b16f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/authorize"} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:50.343355386Z"}]},"request_id":"0f4f40ff-cf2c-497f-9754-c41407dfd405","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.494269} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device 7ad520a5-5372-46ff-b01c-f02d7e62f031","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device 7ad520a5-5372-46ff-b01c-f02d7e62f031\n at Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:44:15)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"45b16f60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling 404 14ms","method":"POST","requestID":"45b16f60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":404,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? 200 16ms","method":"GET","requestID":"45b12140-00f1-11f0-9a2b-c98a3cf1c544","responseTime":16,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device 7ad520a5-5372-46ff-b01c-f02d7e62f031"},"status":404}},"level":"error","message":"Could not send status-update message","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"GET /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031? 200 18ms","method":"GET","requestID":"45b0fa30-00f1-11f0-9a2b-c98a3cf1c544","responseTime":18,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031?"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0503ffd1-ccaf-4b25-af64-e1af304db11a#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0503ffd1-ccaf-4b25-af64-e1af304db11a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"aecc8fbf-1f75-4448-9206-60a5aaa7e787","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.5021682} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6fd7c758-511c-4ab3-9a10-e912a6eb86a6","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.5023859} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"45b3e060-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"level":"info","message":"POST /relations/update 200 13ms","method":"POST","requestID":"0f619048d374df6f41823bb48dbd9a5e","responseTime":13,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3be6b33c-f024-4f77-ba67-9d5379886cf1","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969670.5306768} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.362487,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:50Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"45b3e060-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","user":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"level":"info","message":"Successfully handled POST request on endpoint /experiments","requestID":"0f619048d374df6f41823bb48dbd9a5e"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"45b3e060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} gateway-1 | {"time_local":"14/Mar/2025:16:27:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.274","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"level":"info","message":"POST /experiments? 201 271ms","method":"POST","requestID":"0f619048d374df6f41823bb48dbd9a5e","responseTime":271,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"45b3e060-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling 200 33ms","method":"POST","requestID":"45b3e060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":33,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ec15a8d2450bc0a9a2362b7be95f6199","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ec15a8d2450bc0a9a2362b7be95f6199","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"14/Mar/2025:16:27:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/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":"ec15a8d2450bc0a9a2362b7be95f6199"} device-1 | {"level":"info","message":"OPTIONS /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/websocket 200 1ms","method":"OPTIONS","requestID":"ec15a8d2450bc0a9a2362b7be95f6199","responseTime":1,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6IlhnZnpwN09TX29kblhfMEdfQ2JtMGVRSEVTUUdpNF84a1VNSWpEMG5EUm94U1JVbHpoV1RRRXZfNGprMGlwUkdRaHV3ZkxjRGI0eS1kem1vNWRDWml3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.5mQkx9CaS5wqkQ-zixd2B9UmpAuVxPaxBfgCJUeiRY0","level":"info","message":"auth send jwt","requestID":"3c1162c6542a9dbc4afd50a793937dc2"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3c1162c6542a9dbc4afd50a793937dc2","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called","requestID":"3c1162c6542a9dbc4afd50a793937dc2"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.172847,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"3c1162c6542a9dbc4afd50a793937dc2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","payload":{"admin":true,"edgeToken":"Xgfzp7OS_odnX_0G_Cbm0eQHESQGi4_8kUMIjD0nDRoxSRUlzhWTQEv_4jk0ipRGQhuwfLcDb4y-dzmo5dCZiw","iat":1741969672,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6IlhnZnpwN09TX29kblhfMEdfQ2JtMGVRSEVTUUdpNF84a1VNSWpEMG5EUm94U1JVbHpoV1RRRXZfNGprMGlwUkdRaHV3ZkxjRGI0eS1kem1vNWRDWml3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.5mQkx9CaS5wqkQ-zixd2B9UmpAuVxPaxBfgCJUeiRY0"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"3c1162c6542a9dbc4afd50a793937dc2","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded","requestID":"3c1162c6542a9dbc4afd50a793937dc2"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/websocket 200 20ms","method":"POST","requestID":"3c1162c6542a9dbc4afd50a793937dc2","responseTime":20,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/websocket"} gateway-1 | {"time_local":"14/Mar/2025:16:27:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3c1162c6542a9dbc4afd50a793937dc2"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031' connected"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"c7535a61d0709a62ca929afccbb54c9c","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c7535a61d0709a62ca929afccbb54c9c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"connected":true,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"c7535a61d0709a62ca929afccbb54c9c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.-otdvVBm6ehDkH5OdxQgR71SYvWr0XS6GPays0o3lHk","level":"info","message":"auth send jwt","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629444,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"f468e10e3bf0c6d598aa11b1f13b3b56","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969672,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.-otdvVBm6ehDkH5OdxQgR71SYvWr0XS6GPays0o3lHk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:50.343355386Z"}]},"request_id":"e0637d85-4558-48d2-9cba-0dacd99a3ad3","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969672.8512268} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","method":"POST","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56","responseTime":3,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56"} gateway-1 | {"time_local":"14/Mar/2025:16:27:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56"} device-1 | {"level":"info","message":"GET /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031? 200 10ms","method":"GET","requestID":"f468e10e3bf0c6d598aa11b1f13b3b56","responseTime":10,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031?"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 16ms","method":"POST","requestID":"c7535a61d0709a62ca929afccbb54c9c","responseTime":16,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.020","http_referrer":"","http_user_agent":"node-fetch","requestID":"c7535a61d0709a62ca929afccbb54c9c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.-otdvVBm6ehDkH5OdxQgR71SYvWr0XS6GPays0o3lHk","level":"info","message":"auth send jwt","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643593,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969672,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3Mn0.-otdvVBm6ehDkH5OdxQgR71SYvWr0XS6GPays0o3lHk"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"66cf19c0-4729-4bce-a8af-aa2a114e1ab9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969672.865715} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","method":"POST","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f","responseTime":2,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f"} gateway-1 | {"time_local":"14/Mar/2025:16:27:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f"} device-1 | {"level":"info","message":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? 200 8ms","method":"GET","requestID":"4f7dfdc751c3c5a8b05d383aeeee4a6f","responseTime":8,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79?"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"getDevicesByDeviceId called","requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:35976","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.062266,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","method":"POST","requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.35131,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","method":"POST","requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/authorize"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:50.343355386Z"}]},"request_id":"87c71630-c5e6-438b-921a-64c34737da26","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.5209439} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","method":"POST","requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/query"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"continuation_token":"","page_size":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"timestamp":"2025-03-14T16:27:47.958620189Z"}]},"request_id":"23f1d397-ffc3-4df4-8a7d-e199e6f4bb9c","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.5223732} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","method":"POST","requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/relations/query"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031? 200 22ms","method":"GET","requestID":"48af9430-00f1-11f0-9a2b-c98a3cf1c544","responseTime":22,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded","requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /devices/67d7b628-dc9a-420f-bc41-2705743c1e79? 200 21ms","method":"GET","requestID":"48afe250-00f1-11f0-9a2b-c98a3cf1c544","responseTime":21,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48b38bd0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"86c53f64-534b-48bc-9661-296137c005b5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.5407887} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.928677,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48b38bd0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"48b38bd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48b38bd0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling 200 14ms","method":"POST","requestID":"48b38bd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":14,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48b5fcd0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad3a9648-efb3-4b7d-80f0-98fb18afabab","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.5534253} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.006371,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48b5fcd0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"48b5fcd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48b5fcd0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling 200 8ms","method":"POST","requestID":"48b5fcd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to create peerconnections for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Building connection plan","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"713028be-aa67-4113-9487-e1a7ed76621a"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"a4278500-5ce8-42e9-8893-967fc5a91125"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"0c8df9f1-d41c-4052-98c5-c78ba42e4406"}]},"level":"info","message":"Built pairwise service configurations","requestID":"0f619048d374df6f41823bb48dbd9a5e"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"postPeerconnections called","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.686984,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969670,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3MH0.czvrEKNHNjvuX-MxnSg2aQZqz0QRA0xziM4ppU9PP9c"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined#owner@http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10'. Reason: the 'user' field must be an object (e.g. document:1) or an 'object#relation' or a typed wildcard (e.g. group:*)","grpc_code":2000,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]}},"raw_response":{},"request_id":"3617f8e2-1dd6-4148-86ac-197c9f91f47b","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.570335} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3163a0d1-5a8f-4691-8bea-987eae7b7265","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.5706868} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f'","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f'","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"postPeerconnections succeeded","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 26ms","method":"POST","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544","responseTime":26,"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","requestID":"48b7aa80-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":false} device-1 | {"command":"createPeerconnection","config":{"iceServers":[]},"connectionType":"webrtc","connectionUrl":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"creating connection","messageType":"command","services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}],"tiebreaker":true} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully created peerconnections for experiment","requestID":"0f619048d374df6f41823bb48dbd9a5e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48c3b870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"66d4c25d-45f7-4edf-9605-0024a7163698","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.6672888} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.083985,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48c3b870-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 28ms","method":"POST","requestID":"48c3b870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":28,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48c3b870-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling 200 31ms","method":"POST","requestID":"48c3b870-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48c8c180-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d7dfb0c8-0018-4992-a8cf-43c1281f61d9","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.67565} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.047365,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48c8c180-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"48c8c180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48c8c180-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling 200 7ms","method":"POST","requestID":"48c8c180-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling"} device-1 | {"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"webrtc connect"} device-1 | {"content":{"canTrickle":true},"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"options"} device-1 | {"content":{"sdp":"v=0\r\no=- 7217037958593286176 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:xPDC\r\na=ice-pwd:zVT6+Pd7sU6+oPWr4APm9Hy1\r\na=ice-options:trickle\r\na=fingerprint:sha-256 EE:E2:A8:86:C7:F6:0A:BD:DB:80:4B:EE:D3:B8:94:93:DD:C0:BB:CB:F9:BB:14:00:CC:23:5D:A6:EC:96:73:DB\r\na=setup:actpass\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"offer"},"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"offer"} device-1 | {"content":{"sdp":"v=0\r\no=- 432650692755570893 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:/1uc\r\na=ice-pwd:73FT6ntKVfr3U8YLEEqMondO\r\na=ice-options:trickle\r\na=fingerprint:sha-256 93:C7:32:4D:BA:31:D8:06:11:62:E8:36:0D:0B:D8:06:1C:BF:E8:EC:2B:EE:CC:97:E3:AB:DB:94:71:67:BA:4F\r\na=setup:active\r\na=mid:0\r\na=sctp-port:5000\r\na=max-message-size:262144\r\n","type":"answer"},"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"answer"} device-1 | {"content":{"candidate":"candidate:1416316110 1 udp 2113937151 92e99081-706f-4f33-94d6-48098784d176.local 37997 typ host generation 0 ufrag /1uc network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"data":{"error":{}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79'"} device-1 | {"content":{"candidate":"candidate:1772754614 1 udp 2113937151 8b8692d0-8f09-44ef-ac12-2023a991fdea.local 44040 typ host generation 0 ufrag xPDC network-cost 999","sdpMLineIndex":0,"sdpMid":"0"},"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"sending:","signalingType":"candidate"} device-1 | {"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbd36481-6098-4ade-864e-0f417d75a45f","statusDeviceA":"new","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connecting"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"8d2063dee14e384bab735260c924b740","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"8d2063dee14e384bab735260c924b740","responseTime":1,"status":200,"url":"/auth"} device-1 | {"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"}}},"level":"info","message":"received a callback","requestID":"8d2063dee14e384bab735260c924b740"} device-1 | {"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"IceGatheringComplete"} device-1 | {"device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"WebRTCPeerConnection connectionStateChanged","state":"connected"} device-1 | {"data":{"peerconnection":"bbd36481-6098-4ade-864e-0f417d75a45f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","isTrusted":true,"labels":{"job":"remote_device"},"level":"info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"8d2063dee14e384bab735260c924b740","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"8d2063dee14e384bab735260c924b740"} device-1 | {"data":{"peerconnection":"bbd36481-6098-4ade-864e-0f417d75a45f","statusDeviceA":"connected","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbd36481-6098-4ade-864e-0f417d75a45f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"57da3caa3868bb77315cc0c777392cbf","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"57da3caa3868bb77315cc0c777392cbf","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/67d7b628-dc9a-420f-bc41-2705743c1e79"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"}}},"level":"info","message":"received a callback","requestID":"57da3caa3868bb77315cc0c777392cbf"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called","requestID":"48df7dd0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbd36481-6098-4ade-864e-0f417d75a45f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4af63fbb-ed62-40f9-b504-5ceb1a445fe4","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.8251786} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.177089,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48df7dd0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","method":"POST","requestID":"48df7dd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":4,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded","requestID":"48df7dd0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"GET /peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f 200 7ms","method":"GET","requestID":"48df7dd0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":7,"status":200,"url":"/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 50ms","method":"POST","requestID":"57da3caa3868bb77315cc0c777392cbf","responseTime":50,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27: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.052","http_referrer":"","http_user_agent":"node-fetch","requestID":"57da3caa3868bb77315cc0c777392cbf"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48e6a9c0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ","level":"info","message":"auth send jwt","requestID":"972dc859c8c870e6ab345bfb64eae89b"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"96e692cb-6077-4f24-8067-851eb6849b53","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.872334} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"972dc859c8c870e6ab345bfb64eae89b","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.540614,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","requestID":"972dc859c8c870e6ab345bfb64eae89b"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48e6a9c0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"48e6a9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48e6a9c0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling 200 8ms","method":"POST","requestID":"48e6a9c0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":8,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.906351,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"972dc859c8c870e6ab345bfb64eae89b","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969675,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"972dc859c8c870e6ab345bfb64eae89b","responseTime":3,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"48e83060-00f1-11f0-9a2b-c98a3cf1c544"} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","requestID":"972dc859c8c870e6ab345bfb64eae89b"} gateway-1 | {"time_local":"14/Mar/2025:16:27:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.038","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"972dc859c8c870e6ab345bfb64eae89b"} experiment-1 | {"level":"info","message":"GET /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a 200 34ms","method":"GET","requestID":"972dc859c8c870e6ab345bfb64eae89b","responseTime":34,"status":200,"url":"/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.270016,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e6547fb9-41e8-4260-87c4-ecd33dc99382","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.9065392} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48e83060-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 31ms","method":"POST","requestID":"48e83060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":200,"url":"/authorize"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ","level":"info","message":"auth send jwt","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"25e0fbea9e55d7db4ab99a88c57623a2","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"48e83060-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling 200 34ms","method":"POST","requestID":"48e83060-00f1-11f0-9a2b-c98a3cf1c544","responseTime":34,"status":200,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.661967,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"25e0fbea9e55d7db4ab99a88c57623a2","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"experiment:http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","object_type":"experiment","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969675,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"25e0fbea9e55d7db4ab99a88c57623a2","responseTime":3,"status":200,"url":"/authorize"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Attempting to finish experiment","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called","requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.641348,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:55Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"peerconnection:http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969675,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","method":"POST","requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":2,"status":200,"url":"/authorize"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","device":"67d7b628-dc9a-420f-bc41-2705743c1e79","deviceName":"JS Device 2","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"command":"closePeerconnection","connectionUrl":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f","device":"7ad520a5-5372-46ff-b01c-f02d7e62f031","deviceName":"JS Device 1","labels":{"job":"remote_device"},"level":"info","message":"closing connection","messageType":"command"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"bbd36481-6098-4ade-864e-0f417d75a45f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbd36481-6098-4ade-864e-0f417d75a45f': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fbbd36481-6098-4ade-864e-0f417d75a45f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"3c07a540-9250-4e44-b58f-03e1cc6878c5","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.9550283} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"14d3b94a9341badaaab072c9e42eb4ac","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46191894-abe9-4fa2-b1a3-2e9114444f74","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969675.955394} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"14d3b94a9341badaaab072c9e42eb4ac","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 30ms","method":"POST","requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":30,"status":200,"url":"/relations/update"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"d0cf4985c1caf3471721c94590f29b4b","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"}}},"level":"info","message":"received a callback","requestID":"14d3b94a9341badaaab072c9e42eb4ac"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d0cf4985c1caf3471721c94590f29b4b","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"}}},"level":"info","message":"received a callback","requestID":"d0cf4985c1caf3471721c94590f29b4b"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded","requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f 204 57ms","method":"DELETE","requestID":"48ee71f0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":57,"status":204,"url":"/peerconnections/bbd36481-6098-4ade-864e-0f417d75a45f"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031'"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called","requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.686639,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","payload":{"admin":true,"edgeToken":"dEzgeZz67BDbEx6zC_0AI-Q2UvXcVyymY9Hm63tNhFctmHZkRvywCprd-mGKgIyqUUiOe9JiFAg8qe5-Mpo30w","iat":1741969675,"sub":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10","subject_alt":"http://localhost/users/3db1531f-a7bb-49e5-88a8-133ed7c52a10"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzLzNkYjE1MzFmLWE3YmItNDllNS04OGE4LTEzM2VkN2M1MmExMCIsImVkZ2VUb2tlbiI6ImRFemdlWno2N0JEYkV4NnpDXzBBSS1RMlV2WGNWeXltWTlIbTYzdE5oRmN0bUhaa1J2eXdDcHJkLW1HS2dJeXFVVWlPZTlKaUZBZzhxZTUtTXBvMzB3IiwiYWRtaW4iOnRydWUsImlhdCI6MTc0MTk2OTY3NX0.c4hCCwEsa5Lo9zr21rFhNZ-mf3rEFbJkOoaJSBZxzyQ"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","method":"POST","requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":3,"status":200,"url":"/authorize"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"20694fec-3e0d-40e2-85f5-08d8c15a0e8f","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.0108984} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1ffc0b3b-2e47-4207-9809-e25ff53cac97","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.0110617} authorization-1 | {"level":"info","message":"POST /relations/update 200 5ms","method":"POST","requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/relations/update"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded","requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"DELETE /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031 204 20ms","method":"DELETE","requestID":"48faf510-00f1-11f0-9a2b-c98a3cf1c544","responseTime":20,"status":204,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"},"level":"info","message":"Successfully finished experiment","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"4903ceb0-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F67d7b628-dc9a-420f-bc41-2705743c1e79","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3afca18f-94f7-4052-a980-ee81cc825b15","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.0644352} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.156066,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"4903ceb0-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79","object_type":"device","rebac_allow":false,"scope_allow":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","method":"POST","requestID":"4903ceb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":5,"status":200,"url":"/authorize"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded","requestID":"4903ceb0-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling 200 9ms","method":"POST","requestID":"4903ceb0-00f1-11f0-9a2b-c98a3cf1c544","responseTime":9,"status":200,"url":"/devices/67d7b628-dc9a-420f-bc41-2705743c1e79/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called","requestID":"49057c60-00f1-11f0-9a2b-c98a3cf1c544"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2017) desc = cannot delete a tuple which does not exist: user: 'http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0503ffd1-ccaf-4b25-af64-e1af304db11a': invalid write input","grpc_code":2017,"grpc_method":"Write","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0503ffd1-ccaf-4b25-af64-e1af304db11a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2F3db1531f-a7bb-49e5-88a8-133ed7c52a10"}]},"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","writes":null},"raw_response":{},"request_id":"9f083757-7b3a-4f7d-b8c9-31dd40420fa2","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.070449} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"raw_response":{"authorization_model":{"id":"01JPAQK4D7WM0V5HNKBD90E0NG","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"26c42cb3-fcbb-4db9-9b39-1b08a87bd460","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.0706818} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","method":"POST","requestID":"25e0fbea9e55d7db4ab99a88c57623a2","responseTime":38,"status":200,"url":"/relations/update"} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Received request.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:53276","raw_request":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","contextual_tuples":null,"store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7ad520a5-5372-46ff-b01c-f02d7e62f031","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4385ee5f-e3fa-40f3-9a87-760686fb7b0e","store_id":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF","subsystem":"openfga","timestamp":1741969676.0984054} authorization-1 | {"client_addr":"127.0.0.1:33716","level":"info","msg":"Sent response.","req_id":849,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":26.499995,"resp_status":200,"subsystem":"opa","time":"2025-03-14T16:27:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","openfga":{"authorization_model_id":"01JPAQK4D7WM0V5HNKBD90E0NG","store":"01JPAQK4AJ0VAGPG4KZ3FZ6NXF"},"requestID":"49057c60-00f1-11f0-9a2b-c98a3cf1c544","response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 29ms","method":"POST","requestID":"49057c60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":29,"status":200,"url":"/authorize"} device-1 | {"data":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database","method":"POST","stack":"MissingEntityError: The requested Device Overview does not exist in the database\n at DeviceOverviewRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async DeviceRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-device/app/database/repositories/device.js:155:32)\n at async Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:22:25)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"49057c60-00f1-11f0-9a2b-c98a3cf1c544"} device-1 | {"level":"info","message":"POST /devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling 404 31ms","method":"POST","requestID":"49057c60-00f1-11f0-9a2b-c98a3cf1c544","responseTime":31,"status":404,"url":"/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database"},"status":404}},"level":"error","message":"Could not send status-update message","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.261","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"25e0fbea9e55d7db4ab99a88c57623a2"} experiment-1 | {"level":"info","message":"DELETE /experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a 204 282ms","method":"DELETE","requestID":"25e0fbea9e55d7db4ab99a88c57623a2","responseTime":282,"status":204,"url":"/experiments/0503ffd1-ccaf-4b25-af64-e1af304db11a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 239ms","method":"POST","requestID":"14d3b94a9341badaaab072c9e42eb4ac","responseTime":239,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 240ms","method":"POST","requestID":"d0cf4985c1caf3471721c94590f29b4b","responseTime":240,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch","requestID":"14d3b94a9341badaaab072c9e42eb4ac"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.242","http_referrer":"","http_user_agent":"node-fetch","requestID":"d0cf4985c1caf3471721c94590f29b4b"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2339","request_time":"5.970","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b514b7970cb0f1926a80e483da422d8d"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2097","request_time":"3.379","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e52a47ae5cedcbc64fdd6a83e3a0dc7b"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/67d7b628-dc9a-420f-bc41-2705743c1e79' closed"} authentication-1 | {"level":"info","message":"auth error No token found","requestID":"ad45547f5e52abb2c5246a39ba6b14d9","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ad45547f5e52abb2c5246a39ba6b14d9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"connected":false,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/7ad520a5-5372-46ff-b01c-f02d7e62f031"},"eventType":"device-changed"}},"level":"info","message":"received a callback","requestID":"ad45547f5e52abb2c5246a39ba6b14d9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"ad45547f5e52abb2c5246a39ba6b14d9","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"14/Mar/2025:16:27:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "410","body_bytes_sent":"5","request_time":"0.004","http_referrer":"","http_user_agent":"node-fetch","requestID":"ad45547f5e52abb2c5246a39ba6b14d9"} experiment-1 exited with code 143 federation-1 exited with code 143 device-1 exited with code 143 authorization-1 exited with code 0 authentication-1 exited with code 143 gateway-1 exited with code 0